AWS Elastic Beanstalk — запуск фоновых рабочих процессов SWF

Я пытался найти лучший способ запуска фоновых заданий с использованием PHP на AWS Elastic beanstalk, и после многих часов поиска в Google и SO я считаю, что одним из хороших решений является использование SWF и рабочих операций.

Я нашел этот пример в aws-sdk-for-php: https://github.com/amazonwebservices/aws-sdk-for-php/tree/master/_samples/AmazonSimpleWorkflow/cron

В файле readme говорится:

Чтобы запустить этот пример, вам нужно выполнить три скрипта из командной строки в отдельных окнах терминала/консоли.

а также

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

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

В моем каталоге .ebextensions у меня есть файл, который выполняет эти файлы:

container_commands:
  01background_task: 
    command: "php -f start_cron_example_activity_workers.php"
  02background_task: 
    command: "php -f start_cron_example_workflow_workers.php"

Но я получаю следующие сообщения об ошибках:

ОШИБКА
Не удалось развернуть версию приложения.

ОШИБКА Некоторые экземпляры не ответили на команды. Ответы от [i-a5417ed4] получены не были.

Как я могу сделать это с помощью файлов конфигурации? Как я могу заставить это работать в AWS EB, не создавая единой точки отказа?

Спасибо.


comment
у вас есть решение этой проблемы?   -  person rtdp    schedule 25.01.2013
comment
Еще нет, извините. все еще жду ответа от службы поддержки aws. Я обновлю, как только что-то выясню.   -  person Onema    schedule 26.01.2013
comment
Между тем, я думаю, что просто получу отдельный микроэкземпляр, выполняющий фоновые задания.   -  person rtdp    schedule 26.01.2013


Ответы (2)


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

Я еще не использовал Iron.io, но присматривался к нему, так как планирую перенести свои материалы на AWS. поэтому мне также нужно обрабатывать задания cron.

person Brad    schedule 29.01.2013
comment
Брэд, спасибо за предложение. Я посмотрел на IronWorker... вздох... но это еще одна услуга, за которую мне придется платить. - person Onema; 31.01.2013

Вы ознакомились с Fat Controller? Он может демонизировать что угодно. Документация и примеры есть на сайте: http://fat-controller.sourceforge.net

person SlappyTheFish    schedule 27.08.2013