newbamboo-job_queue 0.0.5 → 0.0.6

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/VERSION.yml CHANGED
@@ -1,4 +1,4 @@
1
1
  ---
2
2
  :patch: 4
3
- :major: 0
3
+ :major: 1
4
4
  :minor: 0
@@ -0,0 +1,28 @@
1
+ require 'stomp'
2
+
3
+ class JobQueue::StompAdapter
4
+ def initialize(options = {})
5
+ username = options[:username]
6
+ password = options[:password]
7
+ host = options[:host] || 'localhost'
8
+ port = options[:port] || 61613
9
+ @conn = Stomp::Connection.new(username, password, host, port, true)
10
+ end
11
+
12
+ def put(string)
13
+ @conn.send("/queue/job_queue", string, :persistent => true)
14
+ end
15
+
16
+ def subscribe(error_report, &block)
17
+ @conn.subscribe("/queue/job_queue")
18
+ loop do
19
+ begin
20
+ job = @conn.receive
21
+ JobQueue.logger.info "Stomp received #{job}"
22
+ yield job.body
23
+ rescue => e
24
+ error_report.call(job, e)
25
+ end
26
+ end
27
+ end
28
+ end
data/lib/job_queue.rb CHANGED
@@ -3,5 +3,6 @@ require 'job_queue/job_queue'
3
3
 
4
4
  JobQueue.autoload 'AMQPAdapter', 'job_queue/adapters/amqp_adapter'
5
5
  JobQueue.autoload 'BeanstalkAdapter', 'job_queue/adapters/beanstalk_adapter'
6
+ JobQueue.autoload 'StompAdapter', 'job_queue/adapters/stomp_adapter'
6
7
  JobQueue.autoload 'TestAdapter', 'job_queue/adapters/test_adapter'
7
8
  JobQueue.autoload 'VerboseAdapter', 'job_queue/adapters/verbose_adapter'
@@ -0,0 +1,39 @@
1
+ require File.dirname(__FILE__) + '/spec_helper'
2
+
3
+ describe JobQueue::TestAdapter do
4
+ before :all do
5
+ JobQueue.adapter = JobQueue::StompAdapter.new
6
+ end
7
+
8
+ it "should write onto queue and fetch stuff back off" do
9
+ JobQueue.put("hello")
10
+
11
+ JobQueue.subscribe do |job|
12
+ @job = job
13
+ throw :stop
14
+ end
15
+
16
+ @job.should == "hello"
17
+ end
18
+
19
+ it "should pull items off in the order the were added" do
20
+ JobQueue.put("foo")
21
+ JobQueue.put("bar")
22
+
23
+ retrieved_jobs = []
24
+
25
+ begin
26
+ Timeout::timeout(0.5) do
27
+ JobQueue.subscribe do |job|
28
+ retrieved_jobs << job
29
+ end
30
+ end
31
+ rescue Timeout::Error
32
+
33
+ end
34
+
35
+ retrieved_jobs[0].should == "foo"
36
+ retrieved_jobs[1].should == "bar"
37
+ retrieved_jobs[2].should == nil
38
+ end
39
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: newbamboo-job_queue
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Martyn Loughran
@@ -30,6 +30,7 @@ files:
30
30
  - lib/job_queue.rb
31
31
  - lib/job_queue/adapters/amqp_adapter.rb
32
32
  - lib/job_queue/adapters/beanstalk_adapter.rb
33
+ - lib/job_queue/adapters/stomp_adapter.rb
33
34
  - lib/job_queue/adapters/test_adapter.rb
34
35
  - lib/job_queue/adapters/verbose_adapter.rb
35
36
  - lib/job_queue/job_queue.rb
@@ -38,6 +39,7 @@ files:
38
39
  - spec/job_queue_spec.rb
39
40
  - spec/spec_helper.rb
40
41
  - spec/test_adapter_spec.rb
42
+ - spec/stomp_adapter_spec.rb
41
43
  - spec/verbose_adapter_spec.rb
42
44
  has_rdoc: true
43
45
  homepage: http://github.com/mloughran/job_queue
@@ -71,4 +73,5 @@ test_files:
71
73
  - spec/job_queue_spec.rb
72
74
  - spec/spec_helper.rb
73
75
  - spec/test_adapter_spec.rb
76
+ - spec/stomp_adapter_spec.rb
74
77
  - spec/verbose_adapter_spec.rb