famoseagle-sweat_shop 1.2.0 → 1.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +1 -1
- data/VERSION.yml +1 -1
- data/script/initd.sh +108 -0
- data/script/kestrel +93 -0
- data/script/kestrel.sh +93 -0
- data/script/sweatshop +17 -0
- metadata +7 -2
data/Rakefile
CHANGED
@@ -12,7 +12,7 @@ begin
|
|
12
12
|
s.homepage = "http://github.com/famoseagle/sweat-shop"
|
13
13
|
s.description = "TODO"
|
14
14
|
s.authors = ["Amos Elliston"]
|
15
|
-
s.files = FileList["[A-Z]*", "install.rb", "{lib,test,config}/**/*"]
|
15
|
+
s.files = FileList["[A-Z]*", "install.rb", "{lib,test,config,script}/**/*"]
|
16
16
|
s.add_dependency('famoseagle-carrot', '= 0.7.0')
|
17
17
|
end
|
18
18
|
rescue LoadError
|
data/VERSION.yml
CHANGED
data/script/initd.sh
ADDED
@@ -0,0 +1,108 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
|
3
|
+
# chkconfig: 345 80 20
|
4
|
+
# description: Sweatshop starts the sweatd daemon
|
5
|
+
|
6
|
+
# Source function library.
|
7
|
+
if [ -f /etc/init.d/functions ] ; then
|
8
|
+
. /etc/init.d/functions
|
9
|
+
elif [ -f /etc/rc.d/init.d/functions ] ; then
|
10
|
+
. /etc/rc.d/init.d/functions
|
11
|
+
else
|
12
|
+
exit 0
|
13
|
+
fi
|
14
|
+
|
15
|
+
DAEMON=/opt/current/script/sweatshop
|
16
|
+
NAME=sweatshop
|
17
|
+
PID_DIR=/opt/current/log
|
18
|
+
LOG_FILE=$PID_DIR/sweatshop.log
|
19
|
+
INSTANCES=3
|
20
|
+
#QUEUE_GROUPS=test
|
21
|
+
export RAILS_ENV=dev
|
22
|
+
|
23
|
+
[ -f /etc/sysconfig/${NAME} ] && . /etc/sysconfig/${NAME}
|
24
|
+
|
25
|
+
|
26
|
+
# Gracefully exit if the package has been removed.
|
27
|
+
if [ ! -x $DAEMON ]; then
|
28
|
+
echo "$DAEMON does not exist"
|
29
|
+
exit 0
|
30
|
+
fi;
|
31
|
+
|
32
|
+
|
33
|
+
function start() {
|
34
|
+
num=$1
|
35
|
+
pidfile=$PID_DIR/$NAME.$num.pid
|
36
|
+
echo $"Starting ${NAME}:${num} "
|
37
|
+
if [ -z $QUEUE_GROUPS ]; then
|
38
|
+
$DAEMON -d start --log-file $LOG_FILE --pid-file $pidfile
|
39
|
+
else
|
40
|
+
$DAEMON -d start --log-file $LOG_FILE --pid-file $pidfile --groups $QUEUE_GROUPS
|
41
|
+
fi
|
42
|
+
RETVAL=$?
|
43
|
+
[ $RETVAL -eq 0 ] && success || failure
|
44
|
+
echo
|
45
|
+
return $RETVAL
|
46
|
+
}
|
47
|
+
|
48
|
+
function stop() {
|
49
|
+
num=$1
|
50
|
+
pidfile=$PID_DIR/$NAME.$num.pid
|
51
|
+
echo $"Stopping ${NAME}:${num}: "
|
52
|
+
$DAEMON -d stop --log-file $LOG_FILE --pid-file $pidfile
|
53
|
+
RETVAL=$?
|
54
|
+
[ $RETVAL -eq 0 ] && success || failure
|
55
|
+
echo
|
56
|
+
return $RETVAL
|
57
|
+
}
|
58
|
+
|
59
|
+
function reload() {
|
60
|
+
num=$1
|
61
|
+
pidfile=$PID_DIR/$NAME.$num.pid
|
62
|
+
echo $"Reloading ${NAME}:${num}: "
|
63
|
+
$DAEMON -d reload --log-file $LOG_FILE --pid-file $pidfile
|
64
|
+
RETVAL=$?
|
65
|
+
[ $RETVAL -eq 0 ] && success || failure
|
66
|
+
echo
|
67
|
+
return $RETVAL
|
68
|
+
}
|
69
|
+
|
70
|
+
function zap() {
|
71
|
+
num=$1
|
72
|
+
pidfile=$PID_DIR/$NAME.$num.pid
|
73
|
+
rm -f $pidfile
|
74
|
+
}
|
75
|
+
|
76
|
+
function doAll() {
|
77
|
+
func=$1
|
78
|
+
ii=0
|
79
|
+
while [ "$ii" -lt $INSTANCES ] ; do
|
80
|
+
eval "$func $(($ii))"
|
81
|
+
ii=$(($ii + 1))
|
82
|
+
done
|
83
|
+
}
|
84
|
+
|
85
|
+
case "$1" in
|
86
|
+
start)
|
87
|
+
doAll start
|
88
|
+
;;
|
89
|
+
stop)
|
90
|
+
doAll stop
|
91
|
+
;;
|
92
|
+
restart)
|
93
|
+
doAll stop
|
94
|
+
sleep 1
|
95
|
+
doAll start
|
96
|
+
;;
|
97
|
+
reload)
|
98
|
+
doAll reload
|
99
|
+
;;
|
100
|
+
zap)
|
101
|
+
doAll zap
|
102
|
+
;;
|
103
|
+
*)
|
104
|
+
echo "Usage: $0 {start|stop|restart|reload|zap}"
|
105
|
+
exit 1
|
106
|
+
esac
|
107
|
+
|
108
|
+
exit $RETVAL
|
data/script/kestrel
ADDED
@@ -0,0 +1,93 @@
|
|
1
|
+
#!/bin/sh
|
2
|
+
#
|
3
|
+
# chkconfig: 345 80 20
|
4
|
+
# description: kestrel is a light-weight queue written in scala
|
5
|
+
#
|
6
|
+
|
7
|
+
# Source function library.
|
8
|
+
if [ -f /etc/init.d/functions ] ; then
|
9
|
+
. /etc/init.d/functions
|
10
|
+
elif [ -f /etc/rc.d/init.d/functions ] ; then
|
11
|
+
. /etc/rc.d/init.d/functions
|
12
|
+
else
|
13
|
+
exit 0
|
14
|
+
fi
|
15
|
+
|
16
|
+
prog=kestrel
|
17
|
+
USER=daemon
|
18
|
+
KESTREL_HOME=/opt/kestrel
|
19
|
+
VERSION=1.0
|
20
|
+
JAR=$KESTREL_HOME/kestrel-$VERSION.jar
|
21
|
+
|
22
|
+
if [ ! -r $JAR ]; then
|
23
|
+
echo "FAIL"
|
24
|
+
echo "*** jar missing - not starting"
|
25
|
+
exit 1
|
26
|
+
fi
|
27
|
+
|
28
|
+
PIDFILE=/var/run/${prog}.pid
|
29
|
+
LOCKFILE=/var/lock/subsys/$prog
|
30
|
+
|
31
|
+
HEAP_OPTS="-Xmx2048m -Xms1024m -XX:NewSize=256m"
|
32
|
+
JAVA_OPTS="-server -verbosegc -XX:+PrintGCDetails -XX:+UseConcMarkSweepGC -XX:+UseParNewGC $HEAP_OPTS"
|
33
|
+
|
34
|
+
start() {
|
35
|
+
echo -n $"Starting $prog: "
|
36
|
+
java $JAVA_OPTS -jar $JAR > /var/log/$prog-startup.log 2>&1 &
|
37
|
+
RETVAL=$?
|
38
|
+
if [ $RETVAL -eq 0 ]; then
|
39
|
+
echo $! > $PIDFILE
|
40
|
+
success $"$prog startup"
|
41
|
+
touch $LOCKFILE
|
42
|
+
else
|
43
|
+
failure $"$prog startup"
|
44
|
+
fi
|
45
|
+
echo
|
46
|
+
return $RETVAL;
|
47
|
+
}
|
48
|
+
|
49
|
+
stop() {
|
50
|
+
echo -n $"Stopping $prog: "
|
51
|
+
if [ -f $PIDFILE ]; then
|
52
|
+
killproc -p $PIDFILE $prog
|
53
|
+
RETVAL=$?
|
54
|
+
if [ $RETVAL -eq 0 ]; then
|
55
|
+
rm -f $LOCKFILE
|
56
|
+
rm -f $PIDFILE
|
57
|
+
fi;
|
58
|
+
else
|
59
|
+
RETVAL=1
|
60
|
+
failure;
|
61
|
+
fi
|
62
|
+
echo
|
63
|
+
return $RETVAL;
|
64
|
+
}
|
65
|
+
|
66
|
+
|
67
|
+
case "$1" in
|
68
|
+
start)
|
69
|
+
start
|
70
|
+
;;
|
71
|
+
|
72
|
+
stop)
|
73
|
+
stop
|
74
|
+
;;
|
75
|
+
|
76
|
+
restart)
|
77
|
+
stop
|
78
|
+
start
|
79
|
+
;;
|
80
|
+
|
81
|
+
condrestart)
|
82
|
+
if [ -f $LOCKFILE ]; then
|
83
|
+
stop
|
84
|
+
start
|
85
|
+
fi
|
86
|
+
;;
|
87
|
+
|
88
|
+
*)
|
89
|
+
echo $"Usage: $0 {start|stop|restart|condrestart}"
|
90
|
+
exit 1
|
91
|
+
esac
|
92
|
+
|
93
|
+
exit $RETVAL
|
data/script/kestrel.sh
ADDED
@@ -0,0 +1,93 @@
|
|
1
|
+
#!/bin/sh
|
2
|
+
#
|
3
|
+
# chkconfig: 345 80 20
|
4
|
+
# description: kestrel is a light-weight queue written in scala
|
5
|
+
#
|
6
|
+
|
7
|
+
# Source function library.
|
8
|
+
if [ -f /etc/init.d/functions ] ; then
|
9
|
+
. /etc/init.d/functions
|
10
|
+
elif [ -f /etc/rc.d/init.d/functions ] ; then
|
11
|
+
. /etc/rc.d/init.d/functions
|
12
|
+
else
|
13
|
+
exit 0
|
14
|
+
fi
|
15
|
+
|
16
|
+
prog=kestrel
|
17
|
+
USER=daemon
|
18
|
+
KESTREL_HOME=/opt/kestrel
|
19
|
+
VERSION=1.0
|
20
|
+
JAR=$KESTREL_HOME/kestrel-$VERSION.jar
|
21
|
+
|
22
|
+
if [ ! -r $JAR ]; then
|
23
|
+
echo "FAIL"
|
24
|
+
echo "*** jar missing - not starting"
|
25
|
+
exit 1
|
26
|
+
fi
|
27
|
+
|
28
|
+
PIDFILE=/var/run/${prog}.pid
|
29
|
+
LOCKFILE=/var/lock/subsys/$prog
|
30
|
+
|
31
|
+
HEAP_OPTS="-Xmx2048m -Xms1024m -XX:NewSize=256m"
|
32
|
+
JAVA_OPTS="-server -verbosegc -XX:+PrintGCDetails -XX:+UseConcMarkSweepGC -XX:+UseParNewGC $HEAP_OPTS"
|
33
|
+
|
34
|
+
start() {
|
35
|
+
echo -n $"Starting $prog: "
|
36
|
+
java $JAVA_OPTS -jar $JAR > /var/log/$prog-startup.log 2>&1 &
|
37
|
+
RETVAL=$?
|
38
|
+
if [ $RETVAL -eq 0 ]; then
|
39
|
+
echo $! > $PIDFILE
|
40
|
+
success $"$prog startup"
|
41
|
+
touch $LOCKFILE
|
42
|
+
else
|
43
|
+
failure $"$prog startup"
|
44
|
+
fi
|
45
|
+
echo
|
46
|
+
return $RETVAL;
|
47
|
+
}
|
48
|
+
|
49
|
+
stop() {
|
50
|
+
echo -n $"Stopping $prog: "
|
51
|
+
if [ -f $PIDFILE ]; then
|
52
|
+
killproc -p $PIDFILE $prog
|
53
|
+
RETVAL=$?
|
54
|
+
if [ $RETVAL -eq 0 ]; then
|
55
|
+
rm -f $LOCKFILE
|
56
|
+
rm -f $PIDFILE
|
57
|
+
fi;
|
58
|
+
else
|
59
|
+
RETVAL=1
|
60
|
+
failure;
|
61
|
+
fi
|
62
|
+
echo
|
63
|
+
return $RETVAL;
|
64
|
+
}
|
65
|
+
|
66
|
+
|
67
|
+
case "$1" in
|
68
|
+
start)
|
69
|
+
start
|
70
|
+
;;
|
71
|
+
|
72
|
+
stop)
|
73
|
+
stop
|
74
|
+
;;
|
75
|
+
|
76
|
+
restart)
|
77
|
+
stop
|
78
|
+
start
|
79
|
+
;;
|
80
|
+
|
81
|
+
condrestart)
|
82
|
+
if [ -f $LOCKFILE ]; then
|
83
|
+
stop
|
84
|
+
start
|
85
|
+
fi
|
86
|
+
;;
|
87
|
+
|
88
|
+
*)
|
89
|
+
echo $"Usage: $0 {start|stop|restart|condrestart}"
|
90
|
+
exit 1
|
91
|
+
esac
|
92
|
+
|
93
|
+
exit $RETVAL
|
data/script/sweatshop
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
if ARGV.include?('-d')
|
4
|
+
ARGV.delete('-d')
|
5
|
+
ARGV.unshift('start') unless ARGV.detect{|a| ['start', 'restart'].include?(a)}
|
6
|
+
|
7
|
+
root = File.expand_path(File.dirname(__FILE__) + '/..')
|
8
|
+
ARGV << "--rails=#{root}"
|
9
|
+
|
10
|
+
system("ruby #{root}/vendor/gems/sweat_shop/lib/sweat_shop/sweatd.rb #{ARGV.join(' ')}")
|
11
|
+
exit $?.exitstatus
|
12
|
+
else
|
13
|
+
puts "Loading Rails..."
|
14
|
+
require File.dirname(__FILE__) + '/../config/environment'
|
15
|
+
puts "Listening for new tasks..."
|
16
|
+
SweatShop.do_all_tasks
|
17
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: famoseagle-sweat_shop
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Amos Elliston
|
@@ -48,12 +48,17 @@ files:
|
|
48
48
|
- lib/sweat_shop/metaid.rb
|
49
49
|
- lib/sweat_shop/sweatd.rb
|
50
50
|
- lib/sweat_shop/worker.rb
|
51
|
+
- script/initd.sh
|
52
|
+
- script/kestrel
|
53
|
+
- script/kestrel.sh
|
54
|
+
- script/sweatshop
|
51
55
|
- test/hello_worker.rb
|
52
56
|
- test/test_functional_worker.rb
|
53
57
|
- test/test_helper.rb
|
54
58
|
- test/test_sweatshop.rb
|
55
59
|
has_rdoc: true
|
56
60
|
homepage: http://github.com/famoseagle/sweat-shop
|
61
|
+
licenses:
|
57
62
|
post_install_message:
|
58
63
|
rdoc_options:
|
59
64
|
- --charset=UTF-8
|
@@ -74,7 +79,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
74
79
|
requirements: []
|
75
80
|
|
76
81
|
rubyforge_project:
|
77
|
-
rubygems_version: 1.
|
82
|
+
rubygems_version: 1.3.5
|
78
83
|
signing_key:
|
79
84
|
specification_version: 2
|
80
85
|
summary: SweatShop is a simple asynchronous worker queue build on top of rabbitmq/ampq
|