Rails没有返回记录的更新版本。
我在模型中有两个方法,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,循环应该结束,它应该返回,但它只是陷入无限循环。
我的假设是它以某种方式获得了一个旧的/陈旧的记录,不知何故被缓存,但我不能为我的生活弄清楚如何强制它获得新的记录。
谢谢,
丹尼斯
答案 0 :(得分:0)
使用Workbench.connection.clear_query_cache
解决了问题!具体来说,我在调用Workbench.poll_result(id)