Gem resque-scheduler 在特定时间,例如每天下午 5 点,在配置文件应该怎么写?

stephen · 2012年11月15日 · 最后由 richfisher 回复于 2012年11月15日 · 4585 次阅读

resque-scheduler 在特定时间,例如每天下午 5 点,在配置文件应该怎么写?

单次 schedule 用 enqueue_at

https://github.com/bvandenbos/resque-scheduler#description

Resque.enqueue_at(5.days.from_now, SomeJob) # run SomeJob at a specific time

循环任务建议用 whenever gem

@cqpx 是循环任务,不过要在后台运行,因为执行时间长,是个爬虫,whenever 没后台执行吧?!如果把他写在配置文件里呢?应该怎么写?

clear_leaderboards_moderator:
  every: ["30s", :first_in => '120s']
  class: CheckDaemon
  queue: daemons
  description: "This job will check Daemon every 30 seconds after 120 seconds after start"

https://github.com/bvandenbos/resque-scheduler#description

文档里有

queue_documents_for_indexing:
  cron: "0 0 * * *"
  # you can use rufus-scheduler "every" syntax in place of cron if you prefer
  # every: 1hr
  # By default the job name (hash key) will be taken as worker class name.
  # If you want to have a different job name and class name, provide the 'class' option
  class: QueueDocuments
  queue: high
  args:
  description: "This job queues all content for indexing in solr“

楼主搜下 crontab 的写法就懂了。

需要 登陆 后方可回复, 如果你还没有账号请 注册新账号