我的应用程序中有一个 Sidekiq 工作者,它的工作原理基本上是这样的:
class SetResultsWorker
include Sidekiq::Worker
def perform
ResultSetter.new.set_results!
end
end
class ResultSetter
def set_results!
events = Event.started.without_results
do_something if events.any?
end
end
问题是这个events.any?在不应该返回的false
时候返回。范围没有问题,因为当同步执行工作程序时(SetResultsWorker.new.perform
),一切正常。有任何想法吗?
编辑:更多信息。该工作程序由守护程序定期执行。第一次执行没问题,但随后它停止工作。