データベースに進行状況データを書き込む単純な Celery タスクがあります。ユーザーに更新を提供するには、djangoビューを使用してこの進行状況の更新を読み取る必要があります。
独自のテーブルを使用して進行状況を書き込み、クライアント側から AJAX ポーリングを使用して読み取りました。現在は機能していません。理由はわかりません。
私のデータベース バックエンドは PostgreSQL です。次を使用してトランザクション分離レベルを変更しようとしました(読み取りビューで):
from django.db import transaction
#4 is READ UNCOMITTED
transaction.connections.all()[0].connection.set_isolation_level(4)
これがデータベースへの新しい接続の分離レベルを変更するのか、それとも現在のトランザクションが使用している接続の分離レベルを変更するのかはわかりませんが、うまくいかないようです。タスクが終了し、トランザクションがコミットされるまで、進行状況データを読み取ることはできません。
これが私が試した2番目の方法です。
update_stateも見つかりました。を使用してすべての進行状況の更新を書き込みますupdate_state
が、実際にはデータベースに書き込まれていないようです。celerycam を実行し、-E 引数を使用してイベントを送信するように celery を構成しました。
進捗日を更新して取得する適切な方法を知りたいです。
ありがとうございます。