LoginSignup
5
5

More than 5 years have passed since last update.

TaskTiger, Django-Q, Luigi比較

Last updated at Posted at 2016-03-09

気になったのでウェブサイトで見かけた内容をまとめた。

機能比較

TaskTiger TaskTiger TaskTiger
実行プロセス タスク毎にフォーク ワーカをプーリング
ロック あり ?
リトライ あり ?
スケジュール済みのタスク あり あり
ログ JSONログ ?
管理画面 あり (Flask) あり (Django Admin Site)
パイプライン ? あり あり
バックエンド Redis Redis, Disque, IronMQ, SQS, MongoDB, Django ORM

実行プロセス

どのようにタスクを実行するか。

ロック

同一(と思われる)タスクをロックまたは排除することが出来るか。
tasktigerは引数で同一のタスクを排除するっぽい。

リトライ

タスクが一時的なエラーに見舞われた場合にリトライすることができるか。

スケジュール済みのタスク

cronのように定期実行する機能のサポート。

ログ

ログ出力。Django-Qは普通にdjango loggingかな。

管理画面

ジョブキューシステムの管理画面の有無。

パイプライン

グループやチェインなど、複数のジョブの流れを管理することが出来るかどうか。

ディスパッチャ

キューがどこからディスパッチされるか。

TaskTiger

ウェブアプリケーションのような並列性の高いサービスで使われることを想定しているようで、引数をキーにロックを作ったり、重複を排除したり出来るのが便利そう。タスクを毎回フォークするのもメモリ使用の観点(メモリリークの対策)という点でもよさげ。

Django-Q

Django Admin Siteを使用できる。Djangoを使って開発している人であれば、Djangoの流儀に則って設計されているので一番手軽に導入できるソリューションかも。バックエンドが選べることや、管理画面がついてくるのもマル。

ドキュメントから読み取れない機能があるので、実際に使ってみないと何とも言えない。

from django_q.tasks import async

async('some.module.build_hoge', 1)

Luigi

開発元はSpotify

サンプルではフラットファイルから、Map / Reduceまたは任意の加工をしてRDBMSに放り込むような内容がまとめられている(Luigi - Example top artists)。長いバッチを実行するのが主な目的で、いわゆる非同期のジョブキューマネージャとは立ち位置が少し異なりそう。パイプラインも組めるので、定期実行するバッチに向いているみたい。

5
5
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5