我正在制作一个需要以非常精确的时间间隔运行作业的应用程序(例如30秒,最大可接受延迟为+ -1秒)。
我目前正在使用外部Go应用程序来轮询我的应用程序中构建的API端点。
有没有办法可以在工作机器(例如Heroku dyno)上运行任务,延迟时间不到一秒?
我调查了Sidekiq和delayed_job,但两者都有明显的滞后因此不适合我的应用。
答案 0 :(得分:2)
在您需要运行之前,将作业计划60秒。将您执行作业所需的确切时间作为参数传递。然后,运行sleep
直到Time.now == exact_time_down_to_the_second
?