rock-queue 0.1.5 → 0.1.7
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/lib/rock-queue/tasks.rb +27 -1
- data/lib/rock-queue/worker.rb +12 -11
- metadata +12 -5
data/Rakefile
CHANGED
@@ -7,7 +7,7 @@ $LOAD_PATH.unshift File.dirname(__FILE__) + '/lib'
|
|
7
7
|
require 'rock-queue/tasks'
|
8
8
|
|
9
9
|
GEM = "rock-queue"
|
10
|
-
GEM_VERSION = "0.1.
|
10
|
+
GEM_VERSION = "0.1.7"
|
11
11
|
AUTHOR = "Grzegorz Kazulak"
|
12
12
|
EMAIL = "gregorz.kazulak@gmail.com"
|
13
13
|
HOMEPAGE = "http://github.com/grzegorzkazulak/rock-queue"
|
data/lib/rock-queue/tasks.rb
CHANGED
@@ -1,11 +1,37 @@
|
|
1
1
|
require 'rock-queue'
|
2
2
|
|
3
|
+
# Fixme: This is bad, really bad =)
|
4
|
+
RAILS_ROOT = '' unless defined?(RAILS_ROOT)
|
5
|
+
|
3
6
|
namespace :rock_queue do
|
4
7
|
desc "Start a Rock Queue worker"
|
8
|
+
|
9
|
+
file_path = "#{RAILS_ROOT}/tmp/pids/rock-queue.pid"
|
10
|
+
|
5
11
|
task :work do
|
6
12
|
worker = RockQueue::Worker.new
|
7
13
|
worker.verbose = ENV['VERBOSE']
|
8
14
|
puts "=> Rock-queue worker initialized (#{worker})"
|
9
|
-
|
15
|
+
|
16
|
+
pid = fork do
|
17
|
+
File.open(file_path, "wb") { |f| f.write(Process.pid) }
|
18
|
+
worker.work
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
|
23
|
+
task :stop do
|
24
|
+
fork do
|
25
|
+
if File.exists?(file_path)
|
26
|
+
File.open(file_path, "r") do |f|
|
27
|
+
pid = f.readline
|
28
|
+
Process.kill('TERM', pid.to_i)
|
29
|
+
end
|
30
|
+
File.unlink(file_path)
|
31
|
+
puts "Rock-Queue shutdown successfully."
|
32
|
+
else
|
33
|
+
puts "Rock-Queue is not running.I haven't done anything."
|
34
|
+
end
|
35
|
+
end
|
10
36
|
end
|
11
37
|
end
|
data/lib/rock-queue/worker.rb
CHANGED
@@ -18,21 +18,22 @@ module RockQueue
|
|
18
18
|
def work
|
19
19
|
puts "=> Worker ready. Hold your horses!"
|
20
20
|
loop do
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
21
|
+
begin
|
22
|
+
@queue.receive do |queue|
|
23
|
+
if queue
|
24
|
+
# code that actually performs the action
|
25
25
|
args = queue.args.first
|
26
|
+
puts "=> Processing class #{queue.object.name} with params: #{args.inspect}"
|
26
27
|
args.empty? ? queue.object.perform : queue.object.perform(args)
|
27
|
-
rescue Object => e
|
28
|
-
# Add failed processing and retry
|
29
|
-
if queue.add_fail(e)
|
30
|
-
sleep(queue.get_sleep_time)
|
31
|
-
puts "=> Processing fail! Retrying #{queue.fails.length}"
|
32
|
-
retry
|
33
|
-
end
|
34
28
|
end
|
35
29
|
end
|
30
|
+
rescue Object => e
|
31
|
+
# Add failed processing and retry
|
32
|
+
if queue.add_fail(e)
|
33
|
+
sleep(queue.get_sleep_time)
|
34
|
+
puts "=> Processing fail! Retrying #{queue.fails.length}"
|
35
|
+
retry
|
36
|
+
end
|
36
37
|
end
|
37
38
|
end
|
38
39
|
end
|
metadata
CHANGED
@@ -1,7 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rock-queue
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 0
|
7
|
+
- 1
|
8
|
+
- 7
|
9
|
+
version: 0.1.7
|
5
10
|
platform: ruby
|
6
11
|
authors:
|
7
12
|
- Grzegorz Kazulak
|
@@ -9,7 +14,7 @@ autorequire: rock-queue
|
|
9
14
|
bindir: bin
|
10
15
|
cert_chain: []
|
11
16
|
|
12
|
-
date:
|
17
|
+
date: 2010-02-21 00:00:00 +01:00
|
13
18
|
default_executable:
|
14
19
|
dependencies: []
|
15
20
|
|
@@ -52,18 +57,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
52
57
|
requirements:
|
53
58
|
- - ">="
|
54
59
|
- !ruby/object:Gem::Version
|
60
|
+
segments:
|
61
|
+
- 0
|
55
62
|
version: "0"
|
56
|
-
version:
|
57
63
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
58
64
|
requirements:
|
59
65
|
- - ">="
|
60
66
|
- !ruby/object:Gem::Version
|
67
|
+
segments:
|
68
|
+
- 0
|
61
69
|
version: "0"
|
62
|
-
version:
|
63
70
|
requirements: []
|
64
71
|
|
65
72
|
rubyforge_project:
|
66
|
-
rubygems_version: 1.3.
|
73
|
+
rubygems_version: 1.3.6
|
67
74
|
signing_key:
|
68
75
|
specification_version: 3
|
69
76
|
summary: A unified interface for various messaging queues
|