GitHubじゃ!Pythonじゃ!

GitHubからPython関係の優良リポジトリを探したかったのじゃー、でも英語は出来ないから日本語で読むのじゃー、英語社会世知辛いのじゃー

rq

rq – Pythonの単純ジョブキュー

投稿日:

Pythonの単純ジョブキュー http://python-rq.org

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

プロジェクト履歴

このプロジェクトは、 CeleryResque 、およびこのスニペットの優れた部分に触発されており、 Celeryや他のAMQPベースのキューイング実装の軽量化の代替品として作成されています。







-rq
-, , , , , , , ,

執筆者: