activequeue 0.1.1 → 0.1.2
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/lib/active_queue/adapter/resque_adapter.rb +0 -1
- data/lib/active_queue/adapter.rb +2 -2
- data/lib/active_queue/job.rb +42 -18
- data/lib/activequeue.rb +9 -1
- data/spec/job_spec.rb +18 -0
- data/spec/spec_helper.rb +12 -0
- metadata +5 -3
data/lib/active_queue/adapter.rb
CHANGED
data/lib/active_queue/job.rb
CHANGED
@@ -2,34 +2,58 @@
|
|
2
2
|
module ActiveQueue
|
3
3
|
|
4
4
|
class Job
|
5
|
+
module ClassMethods
|
6
|
+
|
7
|
+
def perform(opt = {})
|
8
|
+
val = opt["val"] || opt[:val]
|
9
|
+
jk = opt["job_klass"] || opt[:job_klass]
|
10
|
+
klass = jk.class == String ? eval(jk) : jk
|
11
|
+
@v = klass.new(val)
|
12
|
+
@v.perform
|
13
|
+
end
|
14
|
+
end
|
15
|
+
extend ClassMethods
|
5
16
|
@queue = :file_queue
|
6
|
-
|
7
|
-
def initialize(options
|
17
|
+
attr_accessor :val, :options, :queue_adapter, :queue_name, :perform_action, :queue, :job_klass
|
18
|
+
def initialize(options)
|
8
19
|
@options = options
|
9
|
-
@
|
20
|
+
@val = options[:val] || options["val"]
|
21
|
+
@job_klass = options[:job_klass] || options["job_klass"]
|
10
22
|
@queue = options[:queue_name] ? options[:queue_name].to_sym : :file_queue
|
11
23
|
@queue_adapter = options[:adapter] ? options[:adapter] : Adapter::DefaultAdapter.new
|
12
24
|
if @queue_adapter.class == String
|
13
25
|
@queue_adapter = adapters[@queue_adapter] ? adapters[@queue_adapter].new : nil
|
14
26
|
end
|
15
27
|
end
|
16
|
-
def
|
17
|
-
|
18
|
-
|
19
|
-
def perform(options = nil)
|
20
|
-
success = true
|
21
|
-
begin
|
22
|
-
@value.perform(options)
|
23
|
-
rescue Exception => e
|
24
|
-
success = e.message
|
25
|
-
end
|
26
|
-
success
|
28
|
+
def perform(opt = nil)
|
29
|
+
puts "lperf #{opt[:val].respond_to?('perform')}"
|
30
|
+
ActiveQueue::Job.perform(opt)
|
27
31
|
end
|
28
|
-
def
|
29
|
-
|
30
|
-
"delayed" => ActiveQueue::Adapter::DelayedJobAdapter,
|
31
|
-
"insta" => ActiveQueue::Adapter::DefaultAdapter }
|
32
|
+
def enqueue
|
33
|
+
@queue_adapter.enqueue(self.class, :val => @val, :job_klass => @job_klass)
|
32
34
|
end
|
35
|
+
#
|
36
|
+
# def self.perform(value)
|
37
|
+
# #@value ||= options[:value]
|
38
|
+
# value.preform
|
39
|
+
# #success = true
|
40
|
+
# #begin
|
41
|
+
# #@options[:value].perform
|
42
|
+
# #rescue Exception => e
|
43
|
+
# # success = e.message
|
44
|
+
# #end
|
45
|
+
# #success
|
46
|
+
# end
|
47
|
+
# def enqueue
|
48
|
+
# @queue_adapter.enqueue(ActiveQueue::Job, @value)
|
49
|
+
# end
|
50
|
+
#
|
51
|
+
def adapters
|
52
|
+
{ "resque" => ActiveQueue::Adapter::ResqueAdapter,
|
53
|
+
"delayed" => ActiveQueue::Adapter::DelayedJobAdapter,
|
54
|
+
"insta" => ActiveQueue::Adapter::DefaultAdapter }
|
55
|
+
end
|
56
|
+
|
33
57
|
end
|
34
58
|
|
35
59
|
end
|
data/lib/activequeue.rb
CHANGED
data/spec/job_spec.rb
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
2
|
+
|
3
|
+
describe "Job" do
|
4
|
+
it "should be any class with an accessable perform method." do
|
5
|
+
@any = 1
|
6
|
+
job = ActiveQueue::Job.new(:val => @any, :job_klass => AnyClass)
|
7
|
+
job.queue_adapter.class.should == ActiveQueue::Adapter::DefaultAdapter
|
8
|
+
job.perform(:job_klass => AnyClass, :val => @any)
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should be able to queue on resque." do
|
12
|
+
@any = 1
|
13
|
+
job = ActiveQueue::Job.new(:val => @any, :job_klass => AnyClass, :adapter => 'resque')
|
14
|
+
job.queue_adapter.class.should == ActiveQueue::Adapter::ResqueAdapter
|
15
|
+
job.queue_adapter.enqueue(job.class, {:val => @any, :job_klass => AnyClass, :adapter => 'resque'})
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
2
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..'))
|
3
|
+
require 'rubygems'
|
4
|
+
require 'spec'
|
5
|
+
require 'spec/autorun'
|
6
|
+
require 'active_support/inflector'
|
7
|
+
require 'lib/activequeue'
|
8
|
+
|
9
|
+
|
10
|
+
Spec::Runner.configure do |config|
|
11
|
+
|
12
|
+
end
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 1
|
8
|
-
-
|
9
|
-
version: 0.1.
|
8
|
+
- 2
|
9
|
+
version: 0.1.2
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Matthew Jording
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-
|
17
|
+
date: 2010-06-02 00:00:00 -04:00
|
18
18
|
default_executable:
|
19
19
|
dependencies: []
|
20
20
|
|
@@ -64,4 +64,6 @@ signing_key:
|
|
64
64
|
specification_version: 3
|
65
65
|
summary: ActiveQueue is a Rails abstraction of queue configuration and background job creation/specification.
|
66
66
|
test_files:
|
67
|
+
- spec/job_spec.rb
|
68
|
+
- spec/spec_helper.rb
|
67
69
|
- test/helper.rb
|