0

我在 Heroku 中使用 Django,在我的网站中,我每个月都通过 Celery 发送批量电子邮件。由于我每个月只使用这个工人一次,我不想一直为此付费。 我可以在发送电子邮件之前和之后使用 a 停止工作人员heroku scale workers=0并手动扩展它。heroku scale workers=1

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

4

2 回答 2

1

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

您还可以使用调度程序插件并安排一个每月运行一次的命令来发送您的电子邮件,而无需扩大流程。

于 2012-01-24T05:42:06.777 回答
1

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})
于 2012-04-13T05:49:43.680 回答