famoseagle-sweat_shop 1.2.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|