作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个函数:
def self.run_all_scheduled_reports
scheduled_queries = Reports.find(
:all,
:joins=> 'INNER JOIN `expected_times`
ON (`reports`.`report_id` =`expected_times`.`report_id`)')
if scheduled_queries.empty?
print "No reports to run at this time ("+Time.now.to_s+")"
else
caught_exception = false
ActiveRecord::Base.connection.execute("SET SESSION WAIT_TIMEOUT=2400");
scheduled_queries.each do |query|
begin
print "Running report ("+query[:id].to_s+")...\n"
self.run_report(query[:id])
rescue Exception => e
caught_exception = true
print e
end
end
raise "At least one query resulted in an Exception!" if caught_exception
end
end
奇怪的是,当我连续运行这个函数时(通过 script/runner -e ...),结果会有所不同。有时会打印大约 30 份报告,而有时只会打印 15 份(有时根本不会返回任何结果)。你们知道发生了什么事吗?我的数据库是 MYSQL。
此外,如果我将环境更改为“开发”,或者如果我省略 JOIN 部分,它会工作得很好。
最佳答案
我刚刚解决了这个问题,不一致的发生是因为显然,我的 rails 设置为使用单独的层/框架来执行数据库事务。这个中间层随机从 2 个单独的 MYSQL 框读取,结果发现它们不同步。一旦我同步了 2 个盒子,问题就解决了。感谢大家的帮助
关于mysql - 在 Ruby On Rails 中改变 SQL 查询结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8767464/
我是一名优秀的程序员,十分优秀!