2014-02-05 5 views
4

У меня есть веб-роль в Windows Azure, которая запускает Django. У меня есть трудоемкий расчет для асинхронного запуска, и пример использования следующий: клиент отправляет запрос на вычисление, сервер возвращает идентификатор для проверки результата вычисления, а затем клиент может использовать этот идентификатор для извлечения этот результат, как только он исчезнет.Использовать роль рабочего лазера Windows с сельдереем

Теперь мне не хватает фоновой части, и я хотел бы использовать роль рабочего в Windows Azure для этого. Поскольку я хочу остаться независимым от Azure, я бы хотел использовать Celery для обработки этой части. Недостатком является то, что я не мог найти какой-либо ресурс, посвященный этой теме. У кого-нибудь есть идеи?

Большое спасибо заранее!

+0

Рассмотрите возможность использования Windows Azure WebJobs, поскольку он поддерживает скрипты python: http://www.hanselman.com/blog/IntroducingWindowsAzureWebJobs.aspx –

+0

Это похоже на то, что мне нужно! Любые мысли о более подробном ответе на «работу с сельдереем»? (В настоящее время я изучаю его, но вы можете лучше понять, чем я) –

+0

Извините, не знакомый с сельдереем, но если вы можете заставить его работать в Windows, он должен работать над ролью Azure. –

ответ

4

Я сделал непрерывный webjob в лазурном, который работает с сельдереем.

<your repo>/App_Data/jobs/continuous/Celery/celery.cmd 

В celery.cmd Я начинаю сельдерей вот так.

set PYTHONPATH=%PYTHONPATH%;D:\home\site\wwwroot\site-packages\ 
cd D:\home\site\wwwroot\src 
DEL D:\home\site\wwwroot\src\celery.pid 
D:\Python34\python.exe -m celery -A conf worker -Q celery -c 10 -l DEBUG --pidfile D:\home\site\wwwroot\src\celery.pid 

Так что здесь это happing, что я установить путь питона (я уверен, что это может быть сделано глобально somewere в лазури), то я просто компакт-диск в моем проекте Джанго корень и удалите PID файл перед запуском стиль командной строки сельдерея. Когда этот процесс заканчивается, сельдерей снова перезапустится, потому что это непрерывный webjob.

Возможно, вы захотите настроить флаги в соответствии с вашими потребностями.

Если вам нужно сельдерей работать только на одной машине. Вы должны иметь <your repo>/App_Data/jobs/continuous/Celery/settings.job файл:

{"is_singleton": true} 
+0

Это довольно старый, но я хотел обновить для того, что сработало для меня cd D: \ home \ site \ wwwroot D: \ home \ site \ wwwroot \ env \ Scripts \ python.exe -m celery -Araprapp.celery worker --loglevel = info --concurrency = 1 –

0

Мысль я сделал бы это немного более ясно, что делать, чтобы получить сельдерея рабочий начал на веб-приложение: 1. Создайте файл с именем celery.cmd и добавить следующее содержание:

cd D:\home\site\wwwroot 
D:\home\site\wwwroot\env\Scripts\python.exe -m celery -A yourapp.celery worker --loglevel=info --concurrency=1 

2. Создайте файл с именем settings.job со следующим содержанием (это гарантирует, что если веб-приложение чешуя, работник не масштабируется, а):

{"is_singleton": true} 

3.Zip 2 выше файлы

4.In Лазурном портала, создать веб-работу непрерывной и загрузить файл зип вместе с ним.

Смежные вопросы