gpt4 book ai didi

redis - Resque 作业停留在挂起状态

转载 作者:IT王子 更新时间:2023-10-29 06:08:43 25 4
gpt4 key购买 nike

我的 worker 工作不正常。

我的调度程序显然不工作。但是,当我手动将某些东西加入队列时,我可以看到它已成功添加,但它停留在待处理状态。

当我说手动时,我的意思是这样的:

Resque.enqueue(MyJob,<params>)

那些卡在挂起状态,而其他的,我的 resque_scheduler 上的那个根本没有排队。

我试过重启 worker 还是不行。

任何想法可能会发生什么?如果您需要更多信息/转储,请告诉我。

谢谢。


a) are using resque_scheduler if you are you starting it: 是的,我正在使用它。我刚刚做了一个 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

所以我认为它有效,对吧?

b) 哪个版本的resque

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

c) 你有没有重新启动 resque worker rake 任务不,我用过:

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) 是 rake 任务中正确指定的队列是的,是的。

最佳答案

对于任何像我这样的 n00bs,第一次在 Heroku 上设置 Resque。确保在您的应用资源部分添加一个 Resque worker。

enter image description here

关于redis - Resque 作业停留在挂起状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18728777/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com