2013-11-03 34 views
0

我有一個簡單的Celery任務,在數據庫中寫入一些進度數據。我需要使用django視圖來閱讀這個進度更新,以便爲用戶提供更新。使用AJAX輪詢閱讀芹菜任務進度

我用我自己的表來編寫進度,並使用客戶端的AJAX輪詢來讀取它。現在它不工作,我不知道原因。

我的數據庫後端是PostgreSQL。我試圖改變使用下面的事務隔離級別(在讀視圖):

from django.db import transaction 
#4 is READ UNCOMITTED 
transaction.connections.all()[0].connection.set_isolation_level(4) 

我不知道這是否改變了一個新的連接到數據庫或當前事務是使用一個隔離級別,但它似乎並不奏效。在任務完成並提交事務之前,不能讀取進度數據。

這是我試過的第二種方法。

我還發現update_state,我使用update_state編寫所有進度更新,但它似乎沒有實際寫入數據庫。我運行celerycam並配置芹菜發送具有-E參數的事件。

我想知道什麼是正確的方式來更新進度和檢索它。

謝謝你。

回答

0

經過一番谷歌搜索後,我發現「READ UNCOMMITTED」沒有在PostgreSQL中實現,很可能將來不會實現。

我還發現了一個擴展,可以讓你讀髒數據。它是項目enter link description here的一部分,但這迫使我使用raw sql來獲取我想要的數據。