0

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,循环应该结束并且应该返回,但它只是陷入了无限循环。

我的假设是,它以某种方式获得了以某种方式缓存的旧/陈旧记录,但我终生无法弄清楚如何强制它获取新记录。

谢谢你,

-丹尼斯

4

1 回答 1

0

使用已Workbench.connection.clear_query_cache修复的问题!具体来说,我在控制器级别添加了它,就在调用之前Workbench.poll_result(id)

于 2012-07-11T19:31:05.297 回答