2011-03-22 17 views
0

djangoでmysqlテーブルの変更を監視する方法は?次のようにジャンゴでのMySQLのテーブルの変更を監視するために、私はいくつかのコードを書かれている

while not find_close_signal(): 
    time.sleep(10) 
    if MyProject.models.MyModel.objects.all().exists(): 
     some_execution() 

しかし、それは動作しません。最初にテーブルにエントリがない場合、some_execution()は他のアウトバンド方法でそのテーブルにデータが移入された後も実行されません。

このような問題を抱えている人はいますか?

「manage.py shell」にもありますが、この問題はまったく同じです。このシェルからdbに追加された他のエントリは、このシェルでは見つかりません。これは本当ですか、私は間違いをしましたか?ありがとう

答えて

1

これは問題ではありませんが、このコードがトランザクション内で実行されている可能性があります。このような場合は、変更が表示されません。

もう1つは、このチェックで「.all()」をスキップできることです。

0

をあなたはとてもDjangoはキャッシュされた結果を破棄するために 'dirty' としてデシベルをマークすることができます

from django.db import transaction 
transaction.set_dirty() 
関連する問題