我想在每个星期六的晚上11点45分运行一个调度程序,但是如果在heroku中任何时候使用 gem都不支持,那么我们如何编写带有自定义间隔的Heroku呢?
答案:
Simple Scheduler是一种用于Sidekiq和Heroku Scheduler.It的调度附加程序,它使您能够在不添加时钟进程的情况下对任务进行任何间隔的调度。Heroku Scheduler只允许您每10分钟、每小时或每一天安排任务。
步骤1: gem "simple_scheduler“步骤2:包步骤3:在Rails项目中创建文件配置/simple_Scheder.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
有关更多信息,您可以按照下面的链接,
发布于 2017-10-15 14:29:45
这是很容易实现的。假设我们有一个名为example_task的任务,我们可以这样做:
example_task:
class: "ExampleJob"
every: "1.week"
at: "Sat 23:45"请注意,ExampleJob必须扩展ActiveJob::Base并实现执行方法,该方法将保存任务的逻辑。
https://stackoverflow.com/questions/46694594
复制相似问题