2013-09-10 1 views
1

Мои работники работают неправильно.Рекреационные вакансии, застрявшие в состоянии ожидания

Мой планировщик, по-видимому, не работает. Однако, когда я вручную запускаю очередь, я вижу, что она успешно добавлена, однако она застревает в ожидающем состоянии.

Когда я имею в виду вручную, я имею в виду что-то вроде этого:

Resque.enqueue(MyJob,<params>) 

Те застревают в состояние ожидания и другие из них, один на моем resque_scheduler не будучи ан-очереди на всех.

Я попытался перезапустить рабочих, и он тоже не работает.

Любые идеи, что может случиться? Если вам нужна дополнительная информация/дампы, дайте мне знать.

Спасибо.


a) используют resque_scheduler, если да, вы начинаете: Да, я использую его. И я просто сделал rake resque:scheduler RAILS_ENV=production

2013-09-11 16:38:08 Reloading Schedule 
2013-09-11 16:38:08 Loading Schedule 
2013-09-11 16:38:08 Scheduling c_aggregator_job 
2013-09-11 16:38:08 Scheduling ca_aggregator_job 
2013-09-11 16:38:08 Scheduling l_history_aggregator 
2013-09-11 16:38:08 Scheduling target_aggregator 
2013-09-11 16:38:08 Scheduling view_count_aggregator 
2013-09-11 16:38:08 Scheduling searches_view_aggregator 
2013-09-11 16:38:08 Scheduling b_view_count_aggregator_job 
2013-09-11 16:38:08 Scheduling y_aggregator 
2013-09-11 16:38:08 Schedules Loaded 

Так что я думаю, что это работает, не так ли?

б) какая версия Resque

gem 'resque', '1.23.0' 
gem 'resque-scheduler', :require => 'resque_scheduler' 

с) вы повторно начали Resque рабочие грабли задача Нет, я использовал:

sudo service resque-workers start/stop 

Вот сценарий:

#! /bin/sh 
### BEGIN INIT INFO 
# Provides:   resque-server 
# Required-Start: $network $named $remote_fs $syslog 
# Required-Stop:  $network $named $remote_fs $syslog 
# Default-Start:  2 3 4 5                                
# Default-Stop:  0 1 6                                 
### END INIT INFO     

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin 
DAEMON=`which rake` 
DAEMON_ARGS='resque:work' 
DESC="Resque workers script" 
PWD=/webapps/noomii/offline/ 
test -x $DAEMON || exit 0 

. /lib/lsb/init-functions 

if [ ! -d /var/run/resque ]; then 
     mkdir -p /var/run/resque 
fi 

start_resque() { 
     start-stop-daemon --start --quiet --chdir $PWD --chuid capistrano:capistrano --make-pidfile --background --pidfile /var/run/resque/rake.pid \ 
       --exec $DAEMON $DAEMON_ARGS RAILS_ENV=production QUEUE=high,medium,low 
} 

stop_resque() { 
    start-stop-daemon --stop --oknodo --pidfile /var/run/resque/rake.pid 
} 

status_resque() { 
     status_of_proc -p "/var/run/resque/rake.pid" 
} 

case "$1" in 
    start) 
    log_begin_msg "Starting $DESC" 
    start_resque 
    log_end_msg $? 
    ;; 
    stop) 
    log_begin_msg "Stopping $DESC" 
    stop_resque 
    log_end_msg $? 
    ;; 
    status) 
     status_resque 
     ;; 
    restart|force-reload) 
    log_begin_msg "Restarting $DESC" 
    stop_resque 
    sleep 1 
    start_resque 
    log_end_msg $? 
    ;; 
    *) 
    echo "Usage: $0 {start|stop|status|restart}" >&2 
    exit 1 
    ;; 
esac 

d) указанная очередь задана в граблированной задаче Да, это так.

+0

Вы можете прикрепить какой-то код, пожалуйста :) – Viren

+0

Дело в том, что я не знаю, что было бы полезно, чтобы оставлять сообщения. @Viren – content01

+0

Пара вещей a) использует 'resque_scheduler', если да, вы начинаете его b) какая версия resque c) вы перезапустили задачу resque workers' rake' d) - это очередь, указанная правильно в задаче грабли – Viren

ответ

2

Хорошо, поэтому, по-видимому, мои старые сценарии не работали.

я выполнил:

rake resque:scheduler RAILS_ENV=production 
QUEUE=high,aggregators bundle exec rake resque:work RAILS_ENV=production 

и все начали работать снова :)

Большое спасибо вам помочь, и я знаю, что это был вопрос новичка :)

+0

То же самое случилось со мной. Это хорошее напоминание. – dandlezzz

2

Для любые n00bs, такие как я, впервые создавая Resque на Heroku. Убедитесь, что вы добавили сотрудника Resque в раздел «Ресурсы приложений».

enter image description here

+0

хороший звонок. работал на меня! –