2014-03-28 33 views
2

我決定我需要使用一個異步隊列系統。並設置Redis/RQ/django-rq。我想知道如何在我的項目中啓動員工。如何在django啓動時啓動redis隊列工作?

Django的RQ提供了一個管理命令,它是偉大的,它看起來像:

python manage.py rqworker high default low 

但有可能當你開始Django的實例啓動工作?想知道或者我總是需要手動啓動嗎?

謝謝。

回答

1

Django在請求響應週期內運行,並且從請求開始。因此,將這樣的命令附加到Django啓動上是一個壞主意。
取而代之的是,我建議您查看supervisord - 一個流程管理器,它可以在系統啓動時自動啓動服務以及其他任務。

+0

我不小心刪除了我的舊評論。我想提供一些比謝謝更有用的東西。我選擇rq的主要原因之一是它很容易設置,它支持調度任務(rq-scheduler)我遇到的問題是調度系統,你只能給它一個開始時間和間隔。我需要cron類型調度。儘管我很害怕安裝/學習,但我轉向了芹菜。事實證明,文檔很好,這並不壞。我接受了你的建議,並停止嘗試從django開始,並使用芹菜提供的init.d腳本。 –

+0

使用Procfile查看下面的honcho - https://github.com/nickstenning/honcho –

0

當我在Heroku中主持Django項目時。 Heroku提供了一個Procfile,您可以指定以項目開始的內容。 這是我的Procfile:

web: gunicorn RestApi.wsgi 
worker: python manage.py rqworker default 
+0

這可以使用https://github.com/nickstenning/honcho在本地啓動 –