Merge ~twom/launchpad:add-dev-celery-startup-script into launchpad:master

Proposed by Tom Wardill
Status: Merged
Approved by: Tom Wardill
Approved revision: 415b45d1d09cc6745d4f4e6acf2b867b42087cfd
Merge reported by: Otto Co-Pilot
Merged at revision: not available
Proposed branch: ~twom/launchpad:add-dev-celery-startup-script
Merge into: launchpad:master
Diff against target: 64 lines (+58/-0)
1 file modified
utilities/manage-celery-workers.sh (+58/-0)
Reviewer Review Type Date Requested Status
Colin Watson (community) Approve
Ioana Lasc (community) Approve
Review via email: mp+402334@code.launchpad.net

Commit message

Add script to start and stop celery workers in dev environments

Description of the change

Use start-stop-daemon to start a celery worker (with configured concurrencies) for each current queue.

To post a comment you must log in.
Revision history for this message
Ioana Lasc (ilasc) wrote :

Looks good

review: Approve
Revision history for this message
Colin Watson (cjwatson) :
Revision history for this message
Tom Wardill (twom) :
Revision history for this message
Colin Watson (cjwatson) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/utilities/manage-celery-workers.sh b/utilities/manage-celery-workers.sh
2new file mode 100755
3index 0000000..23293b2
4--- /dev/null
5+++ b/utilities/manage-celery-workers.sh
6@@ -0,0 +1,58 @@
7+#!/bin/sh
8+
9+# Used for dev and dogfood, do not use in a production like environment.
10+
11+start_worker() {
12+ # Start a worker for a given queue
13+ queue=$1
14+ echo "Starting worker for $queue"
15+ start-stop-daemon \
16+ --start --oknodo --quiet --background \
17+ --pidfile "/var/tmp/celeryd-$queue.pid" --make-pidfile \
18+ --startas "$PWD/bin/celery" -- worker \
19+ --queues="$queue"\
20+ --config=lp.services.job.celeryconfig \
21+ --hostname="$queue@%n" \
22+ --loglevel=DEBUG \
23+ --logfile="/var/tmp/celeryd-$queue.log"
24+
25+}
26+
27+stop_worker() {
28+ queue=$1
29+ echo "Stopping worker for $queue"
30+ start-stop-daemon --stop --pidfile "/var/tmp/celeryd-$queue.pid"
31+}
32+
33+case "$1" in
34+ start)
35+ for queue in launchpad_job launchpad_job_slow bzrsyncd_job bzrsyncd_job_slow branch_write_job branch_write_job_slow celerybeat
36+ do
37+ start_worker $queue
38+ done
39+ ;;
40+ stop)
41+ for queue in launchpad_job launchpad_job_slow bzrsyncd_job bzrsyncd_job_slow branch_write_job branch_write_job_slow celerybeat
42+ do
43+ stop_worker $queue
44+ done
45+ ;;
46+
47+ restart|force-reload)
48+ for queue in launchpad_job launchpad_job_slow bzrsyncd_job bzrsyncd_job_slow branch_write_job branch_write_job_slow celerybeat
49+ do
50+ stop_worker $queue
51+ done
52+ sleep 1
53+ for queue in launchpad_job launchpad_job_slow bzrsyncd_job bzrsyncd_job_slow branch_write_job branch_write_job_slow celerybeat
54+ do
55+ start_worker $queue
56+ done
57+ echo "$NAME."
58+ ;;
59+ *)
60+ N=/etc/init.d/$NAME
61+ echo "Usage: $N {start|stop|restart|force-reload}" >&2
62+ exit 1
63+ ;;
64+esac

Subscribers

People subscribed via source and target branches

to status/vote changes: