Resque schedueler加载作业但不加入

时间:2017-04-14 07:31:04

标签: ruby-on-rails ruby resque resque-scheduler

我有一个时间表,它在resque.rake中定义如下:

require 'resque/tasks'
require 'resque/scheduler/tasks'
task 'resque:setup' => :environment



namespace :resque do
  task :setup do
    require 'resque'
    Resque.redis = 'localhost:6379'


  end

  task :setup_schedule => :setup do
    require 'resque-scheduler'
    ENV['RAILS_ENV'] = Rails.env
    Resque.schedule = YAML.load_file('config/tweet_schedule.yml')
    require 'tweet_sender.rb'
    end

task :scheduler => :setup_schedule


end

schedele tweet_schedule.yml

tweet_sender:
  cron: "57 7 * * *"
  class: "TweetSender"
  queue: tweets_queue
  args: tweet_id
  rails_env: development
  description: "This job sends daily tweets from the content db"

每当我运行(和redis-server,rails s,通过

加载工作人员)
bundle exec rake resque:work QUEUE='*' --trace

bundle exec rake environment resque:scheduler我得到以下输出

resque-scheduler: [INFO] 2017-04-14T09:14:49+02:00: Starting
resque-scheduler: [INFO] 2017-04-14T09:14:49+02:00: Loading Schedule
resque-scheduler: [INFO] 2017-04-14T09:14:49+02:00: Scheduling tweet_sender 
resque-scheduler: [INFO] 2017-04-14T09:14:49+02:00: Schedules Loaded
Passing 'info' command to redis as is; administrative commands cannot be effectively namespaced and should be called on the redis connection directly; passthrough has been deprecated and will be removed in redis-namespace 2.0 (at sucesfully/home/jan/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/resque-1.27.2/lib/resque/data_store.rb:60:in `method_missing')
Passing 'script' command to redis as is; administrative commands cannot be effectively namespaced and should be called on the redis connection directly; passthrough has been deprecated and will be removed in redis-namespace 2.0 (at /home/jan/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/resque-1.27.2/lib/resque/data_store.rb:60:in `method_missing')

所以我假设它正在加载我的schedusucesfullyle但看起来它没有被enqued(我已经忽略了名称空间警告到目前为止)

计划显示在resque-scheduler web ui中,每当我通过Web界面按钮手动设置时,作业就会成功执行。任何想法为什么它没有正确加载?

Queue now button used to set of jobs

1 个答案:

答案 0 :(得分:0)

所以最后经过大量的尝试后,我发现resque调度程序没有找到我的cron定义。

将5 * cron更改为6 * cron

5* cron cron: "57 7 * * *"
5* cron cron: "15 57 7 * * *"

现在每小时安排一份工作。我还没弄清楚如何安排工作,因为标准的cron语法似乎不起作用

minute (0-59),
|      hour (0-23),
|      |       day of the month (1-31),
|      |       |       month of the year (1-12),
|      |       |       |       day of the week (0-6 with 0=Sunday).
|      |       |       |       |       command
0      2       *       *       0,4