koha-sip --start $(koha-list --enabled --sip)
koha-plack --start $(koha-list --enabled --plack)
koha-z3950-responder --start --quiet $(koha-list --enabled --z3950)
+ # default queue
koha-worker --start $(koha-list --enabled)
+ # long_tasks queue
+ koha-worker --start --queue long_tasks $(koha-list --enabled)
if [ "$USE_INDEXER_DAEMON" = "yes" ]; then
koha-indexer --start --quiet $(koha-list --enabled)
koha-sip --stop $(koha-list --sip)
koha-plack --stop --quiet $(koha-list --enabled --plack)
koha-z3950-responder --stop --quiet $(koha-list --enabled --z3950)
+ # default queue
koha-worker --stop --quiet $(koha-list --enabled)
+ # long_tasks queue
+ koha-worker --stop --queue long_tasks --quiet $(koha-list --enabled)
if [ "$USE_INDEXER_DAEMON" = "yes" ]; then
koha-indexer --stop --quiet $(koha-list --enabled)
koha-sip --restart $(koha-list --enabled --sip)
koha-plack --restart --quiet $(koha-list --enabled --plack)
koha-z3950-responder --restart --quiet $(koha-list --enabled --z3950)
+ # default queue
koha-worker --restart --quiet $(koha-list --enabled)
+ # long_tasks queue
+ koha-worker --restart --queue long_tasks --quiet $(koha-list --enabled)
if [ "$USE_INDEXER_DAEMON" = "yes" ]; then
koha-indexer --restart --quiet $(koha-list --enabled)
start_worker()
{
local name=$1
+ local queue=$2
+
+ if ! is_worker_running $name $queue; then
+
+ worker_name=`get_worker_name $name $queue`
- if ! is_worker_running $name; then
export KOHA_CONF="/etc/koha/sites/$name/koha-conf.xml"
- DAEMONOPTS="--name=$name-koha-worker \
+ DAEMONOPTS="--name=${worker_name} \
--errlog=/var/log/koha/$name/worker-error.log \
--stdout=/var/log/koha/$name/worker.log \
--output=/var/log/koha/$name/worker-output.log \
--verbose=1 --respawn --delay=30 \
--user=$name-koha.$name-koha"
- log_daemon_msg "Starting Koha worker daemon for $name"
+ log_daemon_msg "Starting Koha worker daemon for $name ($queue)"
- if daemon $DAEMONOPTS -- $worker_DAEMON; then
+ if daemon $DAEMONOPTS -- $worker_DAEMON --job-queue ${queue}; then
log_end_msg 0
else
log_end_msg 1
fi
else
- log_daemon_msg "Error: worker already running for $name"
+ log_daemon_msg "Error: worker already running for $name ($queue)"
log_end_msg 1
fi
}
stop_worker()
{
local name=$1
+ local queue=$2
- if is_worker_running $name; then
+ if is_worker_running $name $queue; then
export KOHA_CONF="/etc/koha/sites/$name/koha-conf.xml"
- DAEMONOPTS="--name=$name-koha-worker \
+ worker_name=`get_worker_name $name $queue`
+
+ DAEMONOPTS="--name=${worker_name} \
--errlog=/var/log/koha/$name/worker-error.log \
--stdout=/var/log/koha/$name/worker.log \
--output=/var/log/koha/$name/worker-output.log \
--verbose=1 --respawn --delay=30 \
--user=$name-koha.$name-koha"
- log_daemon_msg "Stopping Koha worker daemon for $name"
+ log_daemon_msg "Stopping Koha worker daemon for $name ($queue)"
- if daemon $DAEMONOPTS --stop -- $worker_DAEMON; then
+ if daemon $DAEMONOPTS --stop -- $worker_DAEMON --job-queue ${queue}; then
log_end_msg 0
else
log_end_msg 1
fi
else
- log_daemon_msg "Error: worker not running for $name"
+ log_daemon_msg "Error: worker not running for $name ($queue)"
log_end_msg 1
fi
}
restart_worker()
{
local name=$1
+ local queue=$2
- if is_worker_running $name; then
+ if is_worker_running $name $queue; then
export KOHA_CONF="/etc/koha/sites/$name/koha-conf.xml"
- DAEMONOPTS="--name=$name-koha-worker \
+ worker_name=`get_worker_name $name $queue`
+
+ DAEMONOPTS="--name=${worker_name} \
--errlog=/var/log/koha/$name/worker-error.log \
--stdout=/var/log/koha/$name/worker.log \
--output=/var/log/koha/$name/worker-output.log \
--verbose=1 --respawn --delay=30 \
--user=$name-koha.$name-koha"
- log_daemon_msg "Restarting Koha worker daemon for $name"
+ log_daemon_msg "Restarting Koha worker daemon for $name ($queue)"
- if daemon $DAEMONOPTS --restart -- $worker_DAEMON; then
+ if daemon $DAEMONOPTS --restart -- $worker_DAEMON --job-queue ${queue}; then
log_end_msg 0
else
log_end_msg 1
fi
else
- log_daemon_msg "Error: worker not running for $name"
+ log_daemon_msg "Error: worker not running for $name ($queue)"
log_end_msg 1
fi
}
worker_status()
{
local name=$1
+ local queue=$2
- if is_worker_running ${name}; then
- log_daemon_msg "worker running for ${name}"
+ if is_worker_running ${name} ${queue}; then
+ log_daemon_msg "worker running for ${name} ($queue)"
log_end_msg 0
else
- log_daemon_msg "worker not running for ${name}"
+ log_daemon_msg "worker not running for ${name} ($queue)"
log_end_msg 3
fi
}
}
op=""
+queue="default"
quiet="no"
# Read command line parameters
--status)
set_action "status"
shift ;;
+ --queue)
+ queue="$2"
+ shift 2 ;;
-*)
die "Error: invalid option switch ($1)" ;;
*)
case $op in
"start")
- start_worker $name
+ start_worker $name $queue
;;
"stop")
- stop_worker $name
+ stop_worker $name $queue
;;
"restart")
- restart_worker $name
+ restart_worker $name $queue
;;
"status")
- worker_status $name
+ worker_status $name $queue
esac
else