PythonのJob Queue、Qamasu
2009年10月11日(日) 02:17
commented by makoto
MySQLのTransactionの問題のようです。
http://groups.google.com/group/django-users/browse_thread/thread/e25cec400598c06d/
ワーカーを動作させているスクリプトからのコネクションを、上記リンクのようにセットしておいてやればよいようです。
>>> from django.db import connection
>>> connection.cursor().execute('set transaction isolation level read committed')
これをどこに挟むべきか、少し悩みます。
PythonのJob Queue、Qamasu
2009年10月10日(土) 18:29
commented by makoto
はて、transactionは(ついimportしてしまってますが)使っていないのですが…
余裕のあるときに試してみます :'-(
PythonのJob Queue、Qamasu
2009年10月08日(木) 00:11
commented by salexkidd
こんばんわ。salexkiddです。
あれからも順調にQamasuを利用していたのですが、少々小さな問題が起きました。
現象としては、MySQLでqamasu_jobのテーブルに対して"MyISAM"ではなく、"InnoDB"エンジンを利用した場合、
Workerが新たに登録されたJobを探せないという問題が起きております。
多分ですが、DBのトランザクション周りが問題になっているのかもしれません。(Workerを再起動すればJobを探せるようなので)
現在Qamasuのソースを見せていただきながらデバッグを行っていますが、何か思い当たる点等ありましたら
御指南いただければと思います。
こちらでも何かわかりましたらまた書き込み指せていただきます。
では!
PythonのJob Queue、Qamasu
2009年09月28日(月) 16:53
commented by salexkidd
コメントTHXです。
とにかく興奮しつつQamasuを現在開発してるものに利用してみました。
結果はかなり良好で、期待通りに動いてくれて感動モノでした。
露木様に示していただいた例のように、qamasu.work()自体は現在 ./manage.py shellして動作させてテストをしております。
まだ、Qamasu自体の中身についてもぐっていないため、パッチ云々Lvではないですが、何かあったらご報告いたします。
では!
PythonのJob Queue、Qamasu
2009年09月26日(土) 22:22
commented by makoto
Djangoのコードは環境変数をきちんと設定すれば簡単にシェルから実行できるのがよいところです。
ですから、キューをさすのはDjangoのviews等からでよいと思いますが、ワーカーはTheSchwartzを使う場合と同様にdaemontoolsのsupervise等を使って常時起動させるのが吉だと思います。
(CPUのコア数ぴったりのワーカーを常時起動させます)
速度や効率はあまり考慮していないので、実案件で利用する際にはしっかり検討をしてください :)
#特にデバッグモードで動かさないように注意してください。SQLのデバッグ情報が延々たまるので早々にメモリがヤバくなります
要改善点等ありましたらパッチウェルカムです!
PythonのJob Queue、Qamasu
2009年09月23日(水) 23:05
commented by saelxkidd
Qamasu便利そうですね。
実は現在作成中の案件で、これと同様の処理を実装しようとWebを散策していたところでした。
最初、Exampleをみた時は "?" という具合でしたが、動かしてみると"!"という感じで、シンプルな利用法に関心致しました。
また、DjanogAppとして組み込まれているのも非常に良いと思います(別プロセスだと監視とか大変なので)
問題は、Qamasuを実際にDjangoアプリケーションで利用する場合、どこでqamasu.work()を動作させるべきか考え中です。
パっと考えついたのが、utils用のappを作成し、view等でthreadingモジュール等を用いてqamasu.work()をずっと回しておくという具合でしょうか。
もしよろしければ、露木様の利用方法を教えていただければ幸いです
では!
CentOS 5.3 に Django-1.1 と MySQL-Python-1.2.2 をインストールする - forest book
2009年08月07日(金) 10:13
commented by t2y
ご紹介ありがとうございます。
私も yum の公開リポジトリにアップしたいと考えています。CentOS の拡張パッケージを提供しているところに行くのが良いのか、他にどこか良いところがあるのか、まだ調査できていない状況になります。

PythonのJob Queue、Qamasu
2009年10月11日(日) 23:32
commented by makoto
qamasuをworkさせる前に、MySQLへの接続セッションのトランザクション隔離レベルを変えてみてください。
from django.db import connection
connection.cursor().execute('set session transaction isolation level read committed')
接続セッションのトランザクション隔離レベルがかわるはずですが、ほかに影響がないか、必ず確認をしてくださいね。