Source

django-celery-about / source / broker_choice.rst

Full commit

ブローカー選択

基本的にはRabbitMQ

Native Transport で Feature Complete

小規模だったら Django でもいいかも

MySQL InnoDBだと分離レベルを下げる事(transaction-isolation = READ-COMMITTED)

[mysqld]
transaction-isolation = READ-COMMITTED

MySQL トランザクション分離レベル

SQL92の4つの分離レベルを全てサポート
READ UNCOMMITTED   他の処理によって行われている、書きかけのデータまで読み取る。 Dirty Readが発生し、不完全なデータや、計算途中のデータを読み取ってしまうこともあります。
READ COMMITTED   Non Repeatable Readが起きる可能性あり。 つまり、同じトランザクション中でも同じデータを読み込むたびに値が変わってしまう現象が発生する可能性がある。
REPEATABLE READ MySQLデフォルト

トランザクションが実行中の間、読み取り対象のデータが途中で他のトランザクションによって変更されません。 同じトランザクション中では同じデータは何度読み取りしても毎回同じ値を読むことができる。

ファントム・リード(Phantom Read) と呼ばれる現象が発生する可能性がある。 (他のトランザクションのデータが読めてしまう。もちろん変更は不可能。)

SERIALIZABLE   業務を時間的に直列に処理したような結果を得られる。

Amazon SQS を買う

$/転送GB : 料金表

ステップ 価格
最初の 1 GB/月 $0.000 GB あたり
10¬TB まで/月 $0.120 GB あたり
次の 40 TB/月 $0.090 GB あたり
次の 100 TB/月 $0.070 GB あたり
次の 350 TB/月 $0.050 GB あたり