我想在每个星期六晚上 11.45 运行一个调度程序,但是如果在 heroku 中不支持的任何时候使用gem,我们如何编写带有自定义间隔的 Heroku 调度程序?
回答:
Simple Scheduler 是一个调度插件,旨在与 Sidekiq 和 Heroku Scheduler 一起使用。它使您能够以任何间隔调度任务,而无需添加时钟进程。Heroku Scheduler 只允许您每 10 分钟、每小时或每天安排一次任务。
第 1 步:gem "simple_scheduler" 第 2 步:捆绑 第 3 步:在 Rails 项目中创建文件 config/simple_scheduler.yml:
# Global configuration options. These can also be set on each task.
queue_ahead: 360 # Number of minutes to queue jobs into the future
tz: nil # The application time zone will be used by default if not set
# Runs once every 2 minutes
simple_task:
class: "SomeActiveJob"
every: "2.minutes"
# Runs once every day at 4:00 AM. The job will expire after 23 hours, which means the
# job will not run if 23 hours passes (server downtime) before the job is actually run
overnight_task:
class: "SomeSidekiqWorker"
every: "1.day"
at: "4:00"
expires_after: "23.hours"
# Runs once every half hour, starting on the 30 min mark
half_hour_task:
class: "HalfHourTask"
every: "30.minutes"
at: "*:30"
# Runs once every week on Saturdays at 12:00 AM
weekly_task:
class: "WeeklyJob"
every: "1.week"
at: "Sat 0:00"
tz: "America/New_York"
第 4 步:将 rake 任务添加到 Heroku Scheduler 并将其设置为每 10 分钟运行一次:rake simple_scheduler
有关更多信息,您可以点击以下链接,