我的工人工作不正常。
\n\n我的调度程序显然不起作用。但是,当我手动将某些内容放入队列时,我可以看到它已成功添加,但它陷入待处理状态。
\n\n当我说手动时,我的意思是这样的:
\n\nResque.enqueue(MyJob,<params>)\nRun Code Online (Sandbox Code Playgroud)\n\n那些卡在挂起状态,而其他的,我的 resque_scheduler 上的那个根本没有进入队列。
\n\n我尝试重新启动工作人员,但它也不起作用。
\n\n有什么想法可能会发生什么吗?如果您需要更多信息/转储,请告诉我。
\n\n谢谢。
\n\na) 正在使用 resque_scheduler 如果您正在启动它:是的,我正在使用它。我刚刚做了一个rake resque:scheduler RAILS_ENV=production
2013-09-11 16:38:08 Reloading Schedule\n2013-09-11 16:38:08 Loading Schedule\n2013-09-11 16:38:08 Scheduling c_aggregator_job \n2013-09-11 16:38:08 Scheduling ca_aggregator_job \n2013-09-11 16:38:08 Scheduling l_history_aggregator \n2013-09-11 16:38:08 Scheduling target_aggregator \n2013-09-11 16:38:08 Scheduling view_count_aggregator \n2013-09-11 16:38:08 Scheduling searches_view_aggregator \n2013-09-11 16:38:08 Scheduling b_view_count_aggregator_job \n2013-09-11 16:38:08 Scheduling y_aggregator \n2013-09-11 16:38:08 Schedules Loaded\nRun Code Online (Sandbox Code Playgroud)\n\n所以我认为它正在发挥作用,对吗?
\n\nb) 哪个版本的resque
\n\ngem \'resque\', \'1.23.0\'\ngem \'resque-scheduler\', :require => \'resque_scheduler\'\nRun Code Online (Sandbox Code Playgroud)\n\nc) 您是否重新启动了 resque Workers rake 任务\n不,我使用了:
\n\nsudo service resque-workers start/stop\nRun Code Online (Sandbox Code Playgroud)\n\n这是脚本:
\n\n#! /bin/sh\n### BEGIN INIT INFO\n# Provides: resque-server\n# Required-Start: $network $named $remote_fs $syslog\n# Required-Stop: $network $named $remote_fs $syslog\n# Default-Start: 2 3 4 5 \n# Default-Stop: 0 1 6 \n### END INIT INFO \n\nPATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin\nDAEMON=`which rake`\nDAEMON_ARGS=\'resque:work\'\nDESC="Resque workers script"\nPWD=/webapps/noomii/offline/\ntest -x $DAEMON || exit 0\n\n. /lib/lsb/init-functions\n\nif [ ! -d /var/run/resque ]; then\n mkdir -p /var/run/resque\nfi\n\nstart_resque() {\n start-stop-daemon --start --quiet --chdir $PWD --chuid capistrano:capistrano --make-pidfile --background --pidfile /var/run/resque/rake.pid \\\n --exec $DAEMON $DAEMON_ARGS RAILS_ENV=production QUEUE=high,medium,low \n}\n\nstop_resque() {\n start-stop-daemon --stop --oknodo --pidfile /var/run/resque/rake.pid\n}\n\nstatus_resque() {\n status_of_proc -p "/var/run/resque/rake.pid" \n}\n\ncase "$1" in\n start)\n log_begin_msg "Starting $DESC"\n start_resque\n log_end_msg $?\n ;;\n stop)\n log_begin_msg "Stopping $DESC"\n stop_resque\n log_end_msg $?\n ;;\n status)\n status_resque\n ;;\n restart|force-reload)\n log_begin_msg "Restarting $DESC"\n stop_resque\n sleep 1\n start_resque\n log_end_msg $?\n ;;\n *)\n echo "Usage: $0 {start|stop|status|restart}" >&2\n exit 1\n ;;\nesac\nRun Code Online (Sandbox Code Playgroud)\n\nd) 是在 rake 任务中正确指定的队列\n是的,是的。
\n好吧,显然我的旧脚本不起作用。
我执行了:
rake resque:scheduler RAILS_ENV=production
QUEUE=high,aggregators bundle exec rake resque:work RAILS_ENV=production
Run Code Online (Sandbox Code Playgroud)
一切又开始工作了:)
非常感谢您的帮助,我知道这是一个新手问题:)
| 归档时间: |
|
| 查看次数: |
4491 次 |
| 最近记录: |