与Django在赫罗库Idling一名工人



我在Heroku中使用Django,在我的网站上,我每个月都通过Celery发送批量电子邮件。由于我一个月只用一次这个工人,我不想一直付钱。我可以停止工作人员使用heroku scale workers=0,并在我发送电子邮件前后手动使用heroku scale workers=1将其放大。

然而,由于其他非技术人员也会从django发送电子邮件,他们无法运行这些命令。我可以通过在我的Heroku web进程中执行Python中的命令来停止工作人员吗?我可以在发送电子邮件之前执行任何命令。

heroku.py有一个错误,请参阅问题:https://github.com/heroku/heroku.py/issues/10和https://github.com/heroku/heroku.py/issues/4

我做了一个快速的变通办法,它直接使用http资源:

cloud = heroku.from_key(settings.HEROKU_APIKEY)    
cloud._http_resource(method='POST', 
   resource=('apps', 'appnane', 'ps', 'scale'), 
   data={'type': 'processname', 'qty': 1})
cloud._http_resource(method='POST', resource=('apps', 'appname', 'ps', 'scale'), data={'type': 'processname', 'qty': 0})

您可以使用python api客户端heroku.py来完成此操作。它在PyPi上可用,源代码位于https://github.com/heroku/heroku.py

你也可以使用调度器插件,并有一个计划每月运行一次的命令来发送你的电子邮件,而不必扩大流程。

相关内容

  • 没有找到相关文章

最新更新