У меня есть функция:
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
Странно то, что, когда я запускаю эту функцию последовательно (через скрипт / бегун -e ...), результат меняется.Иногда печатаются около 30 отчетов, а иногда только 15 (а иногда вообще никаких результатов не возвращается).Ребята, вы понимаете, что происходит?Моя БД - MYSQL.
Кроме того, если я изменяю среду на "разработку" ИЛИ если я пропускаю часть JOIN, она работает довольно хорошо.