与Django一起在Heroku闲置一名工人

与Django一起在Heroku闲置一名工人,django,heroku,celery,django-celery,Django,Heroku,Celery,Django Celery,我在Heroku使用Django,在我的网站上,我每月通过芹菜发送一批电子邮件。因为我一个月只使用一次这个工人,所以我不想一直为它付费。在发送电子邮件之前和之后,我可以使用heroku scale workers=0停止工作人员,并使用heroku scale workers=1手动对其进行缩放 但是,由于其他非技术人员也会从django发送电子邮件,因此他们无法运行这些命令。我可以通过在Heroku web进程中执行Python命令来停止工作进程吗?在发送电子邮件之前,我可以执行任何命令。您可

我在Heroku使用Django,在我的网站上,我每月通过芹菜发送一批电子邮件。因为我一个月只使用一次这个工人,所以我不想一直为它付费。在发送电子邮件之前和之后,我可以使用
heroku scale workers=0
停止工作人员,并使用
heroku scale workers=1
手动对其进行缩放


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

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


您还可以使用scheduler插件,并拥有一个每月运行一次的命令来发送电子邮件,而无需扩展进程。

heroku.py存在错误,请参阅问题:和

我快速解决了这个问题,它直接使用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移走,所以我从未尝试过。不过我会看看bug报告,我仍然很感兴趣哦,似乎有人也在上面发布了一个问题。