軽量の代替品です。
ヒューイは:
ヒューイは以下をサポートします:
from huey import RedisHuey , crontab
huey = RedisHuey ( 'my-app' , host = 'redis.myapp.com' )
@ huey . task ()
def add_numbers ( a , b ):
return a + b
@ huey . task ( retries = 2 , retry_delay = 60 )
def flaky_task ( url ):
# This task might fail, in which case it will be retried up to 2 times
# with a delay of 60s between retries.
return this_might_fail ( url )
@ huey . periodic_task ( crontab ( minute = '0' , hour = '3' ))
def nightly_backup ():
sync_all_data ()
task
装飾関数を呼び出すと、コンシューマーによる実行のために関数呼び出しがキューに入れられます。特別な結果ハンドルがすぐに返され、タスクの終了後に結果をフェッチするために使用できます。
>>> from demo import add_numbers
>>> res = add_numbers( 1 , 2 )
>>> res
>>> res()
3
タスクは将来実行されるようにスケジュールできます。
>>> res = add_numbers.schedule(( 2 , 3 ), delay = 10 ) # Will be run in ~10s.
>>> res( blocking = True ) # Will block until task finishes, in ~10s.
5
さらに詳しくは、ガイドを参照するか、サンプルコードをご覧ください。
4 つのワーカー プロセスを使用してコンシューマーを実行します。
$ huey_consumer.py my_app.huey -k process -w 4
単一のワーカー スレッドでコンシューマーを実行するには (デフォルト):
$ huey_consumer.py my_app.huey
ワークロードのほとんどが IO バウンドである場合は、代わりにスレッドまたはグリーンレットを使用してコンシューマを実行できます。 Greenlet は非常に軽量であるため、かなりの数の Greenlet を効率的に実行できます。
$ huey_consumer.py my_app.huey -k greenlet -w 32
Huey の設計と機能セットは、Redis データベースの機能によって影響を受けました。 Redis は、Huey のような軽量のタスク キューイング ライブラリに最適です。自己完結型で多用途で、キャッシュ、イベント発行、分析、レート制限など、他の Web アプリケーション タスクに対する多目的ソリューションとして使用できます。
Huey は Redis を念頭に置いて設計されていますが、ストレージ システムはシンプルな API を実装しており、必要に応じて Redis の代わりに他の多くのツールを使用できます。
Huey には、Redis、Sqlite、メモリ内ストレージのサポートが組み込まれています。
Huey のドキュメントを参照してください。
Github のソース コードと問題トラッカーを参照してください。
ヒューイは私の猫にちなんで名付けられました。