gpt4 book ai didi

mysql - 在 Ruby On Rails 中改变 SQL 查询结果

转载 作者:行者123 更新时间:2023-11-29 00:50:31 25 4
gpt4 key购买 nike

我有一个函数:

    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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com