2017-04-14 2 views
0

j'ai un calendrier et il est défini dans le resque.rake comme ceci:emplois Resque schedueler de chargement, mais pas enqueing

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 

Le 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" 

Chaque fois que je lance (et le redis-serveur, des rails s, charger les travailleurs par

bundle exec rake resque:work QUEUE='*' --trace 

)

paquet environnement râteau exec resque: ordonnanceur obtenir la sortie suivante

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') 

Je suppose que ce chargement mon schedusucesfullyle, mais il semble que ça ne s'enqued (je l'ai ignoré l'avertissement d'espace de noms jusqu'à présent)

La planification s'affiche dans l'interface utilisateur du planificateur de resque et, à chaque fois que je la règle manuellement via le bouton de l'interface Web, le travail est exécuté avec succès. N'importe quelle idée pourquoi elle ne se charge pas correctement?

Queue now button used to set of jobs

+0

Appuyez sur "Entrée" après avoir vu ces messages m'aide – Ievgen

Répondre

0

Donc à la fin, après beaucoup d'essayer autour, je trouve que planificateur resque ne captait pas ma définition de Cron.

après avoir changé le 5 * Cron à un 6 * Cron

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

Le travail se maintenant programmé toutes les heures. Je n'ai pas encore compris comment planifier le travail chaque jour parce que la syntaxe cron standard ne semble pas fonctionner

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