StoryBoard Deferred Processors
This patch adds a puppet module that will start up N worker threads to handle messages sent to the deferred processing queue. It does so by making use of the new storyboard-worker-daemon command created in the below patch. Both upstart and sysvinit scripts are provided, with sysvinit being the default. https://review.openstack.org/#/c/122890/ Change-Id: I5565cbf8062457d343d3e02dbfaae2852a359d91 Story: 96
This commit is contained in:
parent
8c4feb93f8
commit
59a1fb57da
13
README.md
13
README.md
@ -146,6 +146,19 @@ instance of rabbit.
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
## ::storyboard::workers
|
||||||
|
This module installs StoryBoard's deferred processing threads.
|
||||||
|
|
||||||
|
In order to process deferred requests within StoryBoard, you may run a
|
||||||
|
configurable number of threads that process tasks from the deferred
|
||||||
|
worker queue configured in <code>storyboard::rabbit</code>.
|
||||||
|
|
||||||
|
node default {
|
||||||
|
class { '::storyboard::workers':
|
||||||
|
worker_count => 5
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
## ::storyboard::load_projects
|
## ::storyboard::load_projects
|
||||||
A module that seeds the database with a predefined list of projects.
|
A module that seeds the database with a predefined list of projects.
|
||||||
|
|
||||||
|
@ -70,4 +70,8 @@ class storyboard (
|
|||||||
rabbitmq_user => $rabbitmq_user,
|
rabbitmq_user => $rabbitmq_user,
|
||||||
rabbitmq_user_password => $rabbitmq_user_password
|
rabbitmq_user_password => $rabbitmq_user_password
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class { '::storyboard::workers':
|
||||||
|
worker_count => 5,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
67
manifests/workers.pp
Normal file
67
manifests/workers.pp
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
# Copyright (c) 2014 Hewlett-Packard Development Company, L.P.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||||
|
# not use this file except in compliance with the License. You may obtain
|
||||||
|
# a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
# License for the specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
|
||||||
|
# == Class: storyboard::workers
|
||||||
|
#
|
||||||
|
# This module installs the storyboard deferred processing workers.
|
||||||
|
#
|
||||||
|
class storyboard::workers (
|
||||||
|
$worker_count = 5,
|
||||||
|
$use_upstart = false,
|
||||||
|
) {
|
||||||
|
|
||||||
|
include storyboard::params
|
||||||
|
|
||||||
|
$upstart_path = '/etc/init/storyboard-workers.conf'
|
||||||
|
$sysvinit_path = '/etc/init.d/storyboard-workers'
|
||||||
|
|
||||||
|
if $use_upstart {
|
||||||
|
file { $upstart_path:
|
||||||
|
ensure => file,
|
||||||
|
owner => root,
|
||||||
|
group => root,
|
||||||
|
mode => '0644',
|
||||||
|
content => template('storyboard/storyboard-workers.conf.erb'),
|
||||||
|
notify => Service['storyboard-workers'],
|
||||||
|
before => Service['storyboard-workers'],
|
||||||
|
}
|
||||||
|
file { $sysvinit_path:
|
||||||
|
ensure => absent
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
file { $upstart_path:
|
||||||
|
ensure => absent
|
||||||
|
}
|
||||||
|
file { $sysvinit_path:
|
||||||
|
ensure => file,
|
||||||
|
owner => root,
|
||||||
|
group => root,
|
||||||
|
mode => '0755',
|
||||||
|
content => template('storyboard/storyboard-workers.sh.erb'),
|
||||||
|
notify => Service['storyboard-workers'],
|
||||||
|
before => Service['storyboard-workers'],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
service { 'storyboard-workers':
|
||||||
|
ensure => running,
|
||||||
|
hasrestart => true,
|
||||||
|
subscribe => [
|
||||||
|
Class['::storyboard::application']
|
||||||
|
],
|
||||||
|
require => [
|
||||||
|
Class['::storyboard::application']
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
11
templates/storyboard-workers.conf.erb
Normal file
11
templates/storyboard-workers.conf.erb
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
description "StoryBoard Deferred Workers"
|
||||||
|
|
||||||
|
start on started network-services
|
||||||
|
stop on stopping network-services
|
||||||
|
|
||||||
|
setuid <%= scope.lookupvar("storyboard::params::user") %>
|
||||||
|
setgid <%= scope.lookupvar("storyboard::params::group") %>
|
||||||
|
|
||||||
|
script
|
||||||
|
storyboard-worker-daemon --worker-count <%= @worker_count %>
|
||||||
|
end script
|
66
templates/storyboard-workers.sh.erb
Normal file
66
templates/storyboard-workers.sh.erb
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
### BEGIN INIT INFO
|
||||||
|
# Provides: storyboard-workers
|
||||||
|
# Required-Start: $network $local_fs
|
||||||
|
# Required-Stop:
|
||||||
|
# Default-Start: 2 3 4 5
|
||||||
|
# Default-Stop: 0 1 6
|
||||||
|
# Short-Description: StoryBoard Deferred Processors
|
||||||
|
#### END INIT INFO
|
||||||
|
|
||||||
|
NAME=storyboard-workers
|
||||||
|
USER=<%= scope.lookupvar("storyboard::params::user") %>
|
||||||
|
GROUP=<%= scope.lookupvar("storyboard::params::group") %>
|
||||||
|
CMD="storyboard-worker-daemon"
|
||||||
|
CMD_ARGS="--worker-count <%= @worker_count %>"
|
||||||
|
|
||||||
|
########## Common
|
||||||
|
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:$PATH
|
||||||
|
SSD=start-stop-daemon
|
||||||
|
PID=/var/run/${NAME}.pid
|
||||||
|
|
||||||
|
start () {
|
||||||
|
echo -n "Start $NAME"
|
||||||
|
$SSD --start --pidfile $PID --make-pidfile -u $USER -g $GROUP --background --exec $CMD -- $CMD_ARGS
|
||||||
|
RETVAL=$?
|
||||||
|
echo
|
||||||
|
return $RETVAL
|
||||||
|
}
|
||||||
|
|
||||||
|
stop () {
|
||||||
|
echo -n "Stop $NAME"
|
||||||
|
$SSD --stop --oknodo --pidfile $PID --signal INT
|
||||||
|
RETVAL=$?
|
||||||
|
echo
|
||||||
|
return $RETVAL
|
||||||
|
}
|
||||||
|
|
||||||
|
restart () {
|
||||||
|
stop
|
||||||
|
sleep 1
|
||||||
|
start
|
||||||
|
}
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
start
|
||||||
|
;;
|
||||||
|
|
||||||
|
stop)
|
||||||
|
stop
|
||||||
|
;;
|
||||||
|
|
||||||
|
status)
|
||||||
|
echo "not supported"
|
||||||
|
;;
|
||||||
|
|
||||||
|
restart)
|
||||||
|
restart
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
echo "Usage: $0 {start|stop|restart}"
|
||||||
|
exit 1
|
||||||
|
esac
|
||||||
|
|
||||||
|
exit $RETVAL
|
Loading…
x
Reference in New Issue
Block a user