我有工作人员向服务器发送请求并检查是否存在文件。 现在 worker 在指定的时间运行:
CheckFileWorker.perform_in(@target_file.check_start_date, @target_file.url)
- 我想每 2 秒运行一次 worker。我该怎么做?
- 可能需要第二个 Worker 来启动第一个 Worker?
最佳答案
我正在使用 Sidetiq 来安排重复出现的后台作业 (https://github.com/tobiassvn/sidetiq)。
基本上你应该做类似的事情:
class LicenseCheckerWorker
include Sidekiq::Worker
include Sidetiq::Schedulable
recurrence { hourly }
def perform
#your logic here
end
end
当然,您应该更改重复计划以反射(reflect)您的偏好。
编辑:另一种方法是在#perform 逻辑结束时安排另一次运行,延迟 2 秒。
关于ruby-on-rails - 如何使用 Sidekiq 每 2 秒发送一次请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25418911/