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 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