Github: https://github.com/coleifer/huey
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.
ドキュメンテーション
プロジェクトページ
Githubのソースコードと問題追跡ツールを参照してください 。
Hueyは私の猫の名誉を称えて命名されました: