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

Subscribers

People subscribed via source and target branches

to status/vote changes: