4 * StatusNet - the distributed open-source microblogging tool
5 * Copyright (C) 2010, StatusNet, Inc.
7 * This program is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU Affero General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU Affero General Public License for more details.
17 * You should have received a copy of the GNU Affero General Public License
18 * along with this program. If not, see <http://www.gnu.org/licenses/>.
22 * Sends control signals to running queue daemons.
24 * @author Brion Vibber <brion@status.net>
25 * @package QueueHandler
28 define('INSTALLDIR', realpath(dirname(__FILE__) . '/..'));
31 $longoptions = array('update', 'restart', 'stop');
33 $helptext = <<<END_OF_QUEUECTL_HELP
34 Send broadcast events to control any running queue handlers.
35 (Currently for Stomp queues only.)
37 Events relating to current site (as selected with -s etc)
38 -u --update Announce new site or updated configuration. Running
39 daemons will start subscribing to any new queues needed
43 -r --restart Graceful restart of all threads
44 --stop Graceful shutdown of all threads
48 require_once INSTALLDIR.'/scripts/commandline.inc';
50 function doSendControl($message, $event, $param='')
53 $qm = QueueManager::get();
54 if ($qm->sendControlSignal($event, $param)) {
63 if (have_option('u') || have_option('--update')) {
64 $nickname = common_config('site', 'nickname');
65 doSendControl("Sending site update signal to queue daemons for $nickname",
70 if (have_option('r') || have_option('--restart')) {
71 doSendControl("Sending graceful restart signal to queue daemons...",
76 if (have_option('--stop')) {
77 doSendControl("Sending graceful shutdown signal to queue daemons...",