Холостой рабочий в Героку с Джанго - PullRequest
0 голосов
/ 24 января 2012

Я использую Django в Heroku, и на моем сайте я отправляю пакетные электронные письма каждый месяц через Celery.Поскольку я использую этого работника только один раз в месяц, я не хочу платить за него все время.Я могу остановить работника, использующего heroku scale workers=0, и увеличить его до heroku scale workers=1 вручную до и после отправки своих электронных писем.

Однако, поскольку другие нетехнические сотрудники также будут отправлять электронную почту от django, онине может запустить эти команды.Могу ли я остановить работника, выполнив команду из Python в моем веб-процессе Heroku?Я мог выполнять любые команды перед отправкой электронной почты.

Ответы [ 2 ]

1 голос
/ 13 апреля 2012

Есть ошибка с 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})
1 голос
/ 24 января 2012

Вы можете сделать это с heroku.py клиентом Python API. Доступно на PyPi с источником на https://github.com/heroku/heroku.py

Вы также можете использовать надстройку планировщика и иметь команду, которая по расписанию будет запускаться раз в месяц, чтобы отправлять ваши электронные письма без необходимости наращивать процесс.

...