rock-queue 0.1.5 → 0.1.7

Sign up to get free protection for your applications and to get access to all the features.
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.5"
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"
@@ -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
- worker.work
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
@@ -18,21 +18,22 @@ module RockQueue
18
18
  def work
19
19
  puts "=> Worker ready. Hold your horses!"
20
20
  loop do
21
- @queue.receive do |queue|
22
- if queue
23
- # code that actually performs the action
24
- begin
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
- version: 0.1.5
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: 2009-12-11 00:00:00 +01:00
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.5
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