运行 一个 Rails 精确时间的工作(精确到秒)

Run a Rails job at precise time (accurate to the second)

我正在制作一个应用程序,需要 运行 以极其精确的时间间隔(例如 30 秒,最大可接受延迟为 +-1 秒)执行作业。

我目前正在使用外部 Go 应用程序执行此操作,该应用程序轮询在我的应用程序中构建的 API 端点。

有没有一种方法可以 运行 工作机器(例如 Heroku dyno)上的任务延迟小于一秒?

我研究过 Sidekiq 和 delayed_job,但两者都有明显的滞后,因此不适合我的应用程序。

在您需要之前将作业安排 60 秒 运行。传入您需要执行作业的确切时间作为参数。然后,运行 sleep 直到 Time.now == exact_time_down_to_the_second?