Github: https://github.com/rq/rq
RQ( Redis Queue )はジョブをキューに入れ、ワーカーとバックグラウンドで処理するためのシンプルなPythonライブラリです。 Redisの支援を受けており、侵入障壁が低くなるように設計されています。 それはあなたのWebスタックに簡単に統合する必要があります。
RQはRedis> = 2.7.0を必要とします。
完全なドキュメントはここにあります 。
入門
まず、Redisサーバーを実行します。
$ redis-server
ジョブをキューに入れるには、何も特別な処理をする必要はありません。一般的に時間のかかる、またはブロックする関数を定義するだけです。
import requests
def count_words_at_url(url):
"""Just an example function that's called async."""
resp = requests.get(url)
return len(resp.text.split())
優れたリクエストパッケージを使用していますか?
次に、RQキューを作成します。
from redis import Redis
from rq import Queue
q = Queue(connection=Redis())
そして関数呼び出しをエンキューします:
from my_module import count_words_at_url
job = q.enqueue(count_words_at_url, 'http://nvie.com')
より完全な例については、 ドキュメントを参照してください。 しかし、これは本質です。
働く人
エンキューされた関数呼び出しをバックグラウンドで実行するには、プロジェクトのディレクトリからワーカーを開始します。
$ rq worker
*** Listening for work on default
Got count_words_at_url('http://nvie.com') from default
Job result = 818
*** Listening for work on default
それはそれです。
インストール
次のコマンドを使用して、最新リリース版をインストールしてください。
pip install rq
最先端のバージョン(壊れている可能性があります)が必要な場合は、これを使用してください:
pip install -e git+https://github.com/nvie/rq.git@master#egg=rq
プロジェクト履歴
このプロジェクトは、 Celery 、 Resque 、およびこのスニペットの優れた部分に触発されており、 Celeryや他のAMQPベースのキューイング実装の軽量化の代替品として作成されています。