GitHubじゃ!Pythonじゃ!

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

coleifer

huey – Python用の小さなタスクキュー

投稿日:

Python用の小さなタスクキュー http://huey.readthedocs.org/

huey – 小さなタスクキュー

軽量の代替。

  • Pythonで書かれている(2.7+、3.4+)
  • Python Redisクライアントへのオプションの依存関係

サポート:

  • マルチプロセス、マルチスレッドまたはグリーンレットタスク実行モデル
  • 所定の時間に、または所定の遅延の後に実行するタスクをスケジュールする
  • crontabのような定期的なタスクをスケジュールする
  • 自動的に失敗するタスクを再試行する
  • タスク結果の格納
  • タスクロック
  • タスクパイプラインとチェーン

HueyのAPI

from huey import RedisHuey, crontab

huey = RedisHuey('my-app', host='redis.myapp.com')

@huey.task()
def add_numbers(a, b):
    return a + b

@huey.periodic_task(crontab(minute='0', hour='3'))
def nightly_backup():
    sync_all_data()

4つのワーカープロセスでコンシューマを実行するには:

$ huey_consumer.py my_app.huey -k process -w 4

2つの数値を追加して結果を出力するタスクをエンキューするには:

res = add_numbers(1, 2)  # Enqueues task.
print(res.get())  # Prints "3".

10秒間に2つの番号を追加するようにスケジュールするには:

res = add_numbers.schedule(args=(1, 2), delay=10)

# Attempt to get result without blocking.
print(res.get(False))  # returns None.

# Block until result is ready and print.
print(res.get())  # after 10 seconds, prints "3".

ブローカー

RedisでHueyを使用するには( 推奨 ):

from huey import RedisHuey

huey = RedisHuey()

SQLite( docs )でHueyを使用するには:

from huey.contrib.sqlitedb import SqliteHuey

huey = SqliteHuey('my-app-queue.db')

背景のグリーンレット( ドキュメント )を使用して親プロセス内でHueyを実行するには:

from huey.contrib.minimal import MiniHuey

huey = MiniHuey()
huey.start()  # Spawns scheduler background thread and returns immediately.

Hueyを単純なPythonブローカ( 本番環境では使用しないで ください )で実行するには、[simpledb]( https://github.com/coleifer/simpledb )をインストールして実行します。

from huey.contrib.simple_storage import SimpleHuey

huey = SimpleHuey()

# Be sure to run the Python broker process, e.g.:
# $ python simpledb.py  # Starts Python broker.

ドキュメンテーション

Hueyのドキュメントを参照してください

プロジェクトページ

Githubのソースコードと問題追跡ツールを参照してください

Hueyは私の猫の名誉を称えて命名されました:







-coleifer
-, , , ,

執筆者: