Railsは更新されたバージョンのレコードを返していません。
モデルには2つのメソッドがありsubmit_job(sig, label, jobtype)
ます。バックエンドで処理されるデータベースにジョブを送信し、送信されたpoll_result(id)
ジョブを毎秒ポーリングして完了を確認し、完了したジョブの結果をに返します。ユーザー。
私の問題は、poll_result(id)
メソッドが更新されたレコードを取得しないことです。
def self.poll_result(id)
change = false
Workbench.where("id = ?", id).each do |sig|
if sig.resultsready.to_i == 1
change = true
end
end
return change
end
アクセスしているレコードの結果を印刷してもらうとわかるように、これはすべて、元の挿入の結果を何度も繰り返してカムバックすることです。データベースを直接調べていると、データベースが正しいIDを呼び出しており、レコードが更新されていることがわかります。データベースでresultsreadyが1に設定されている場合、ループは終了して戻る必要がありますが、無限ループでスタックします。
私の仮定では、何らかの形でキャッシュされている古い/古いレコードを取得していると思いますが、新しいレコードを取得するように強制する方法を一生理解することはできません。
ありがとうございました、
-デニス