タスクキューのチェインについて

タスクキューのチェインの仕方に関するajnな人々の議論
1
Suguru ARAKAWA @ashigeru

@shin1ogawa ちなみに、Query implements Serializable なので、そこ汎用化しておくと楽です。

2010-06-11 02:08:21
SHIIBA Mitsuyuki @bufferings

@ashigeru そっか。チェインしてからの失敗は困りますね。

2010-06-11 02:08:59
Suguru ARAKAWA @ashigeru

@bufferings はい。すべてのタスクをあの形式で書いておくといろいろ安心です。チェインが不要な場合はチェインしないだけ。

2010-06-11 02:09:18
shin1ogawa @shin1ogawa

ただ、ちょっと前から話題になってる「同じタスクの2重登録」が気になる。2段目のTaskが同時に走ったりする危険性を考慮すると、ロックのような仕組みが必要で、そのロックの解除に失敗したら?とか複雑になる。だから、2段目のTaskはTasknameを使って2重登録を防ぎたい。

2010-06-11 02:09:59
shin1ogawa @shin1ogawa

@ashigeru QueryはKindlessクエリなので、カーソルだけ保存すればおkなカンジです。2段目はKeyのブロックのどこまで処理したか?を保存するので、Queryは必要ないかんじです。 #appengine

2010-06-11 02:11:00
Suguru ARAKAWA @ashigeru

@shin1ogawa 1段目の部分でキーをばら撒く処理があると思いますが、あれを共通化する感じです。毎回作るのめんどくさくてw

2010-06-11 02:13:04
shin1ogawa @shin1ogawa

@ashigeru そうですね、今回の自分の目的はKindlessQueryだけど、色々なクエリに対応した、めちゃ小さい枠組みを用意しておくと便利ですね。Slim3だとencodedFilters,encodedSortsもあって便利ですし。 #appengine

2010-06-11 02:15:14
あおうさ @bluerabbit777jp

tqはほとんどコレでチェインはあんまり使ってない。 RT “@ashigeru: @shin1ogawa そういう場合はチェインより多層タスクのほうが管理も並列化も楽だと思います。keys onlyで範囲だけ決める1層目と、キーを元に処理する2層目ですね #appengine

2010-06-11 07:45:09
あおうさ @bluerabbit777jp

#appengine tqでチェインさせてるのはtwitterのクローラーでcronよりも短い間隔で処理させたい時に使ってるくらい。時間帯によってtweetが増えるのでその件数によってチェインさせてる。

2010-06-11 07:46:52