seam-sidekiq 1.0.2 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/seam/sidekiq.rb +47 -8
- data/lib/seam/sidekiq/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9a61a9f0a91398bef9f2100f1f46e7792bb2a3eb
|
4
|
+
data.tar.gz: fd74ccb2b2a998928f8ed98f00df43908cf94707
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d47cab22355cfffb8979a5bac1fcf7ac7db3fedca4a050c9846bfcd492e3b6253351031a55b470a88452afd631d71cb72258e6706d5c39833bc6993202176c90
|
7
|
+
data.tar.gz: a1161e82722ade69bc1880704d86e3dc885a922b0ccfbbd0e9ca24b504fc8a82261676e61e39961ee4fb2202c7b7f99d4bfde4650f9f6edc771323c699556621
|
data/lib/seam/sidekiq.rb
CHANGED
@@ -1,7 +1,9 @@
|
|
1
1
|
require 'seam'
|
2
2
|
|
3
3
|
module Seam
|
4
|
+
|
4
5
|
module Sidekiq
|
6
|
+
|
5
7
|
def self.setup
|
6
8
|
::Seam::Worker.class_eval do
|
7
9
|
include ::Sidekiq::Worker
|
@@ -9,16 +11,53 @@ module Seam
|
|
9
11
|
def perform effort_id
|
10
12
|
effort = Seam::Effort.find effort_id
|
11
13
|
execute effort
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
14
|
+
::Seam::Sidekiq.fire_the_worker_for_the_next_step_of effort
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
::Seam::Flow.class_eval do
|
19
|
+
alias :the_default_start_for :start
|
20
|
+
def start(data = {})
|
21
|
+
effort = the_default_start_for data
|
22
|
+
::Seam::Sidekiq.fire_the_worker_for_the_next_step_of effort
|
23
|
+
effort
|
20
24
|
end
|
21
25
|
end
|
22
26
|
end
|
27
|
+
|
28
|
+
def self.fire_the_worker_for_the_next_step_of effort
|
29
|
+
return unless worker = the_next_worker_for(effort)
|
30
|
+
this_should_be_executed_in_the_future(effort) ?
|
31
|
+
execute_this_in_the_future(worker, effort) :
|
32
|
+
execute_this_now(worker, effort)
|
33
|
+
end
|
34
|
+
|
35
|
+
class << self
|
36
|
+
|
37
|
+
private
|
38
|
+
|
39
|
+
def execute_this_in_the_future worker, effort
|
40
|
+
worker.class.perform_in time_until(effort), effort.id
|
41
|
+
end
|
42
|
+
|
43
|
+
def execute_this_now worker, effort
|
44
|
+
worker.class.perform_async effort.id
|
45
|
+
end
|
46
|
+
|
47
|
+
def the_next_worker_for effort
|
48
|
+
Seam::Worker.handler_for effort.next_step
|
49
|
+
end
|
50
|
+
|
51
|
+
def time_until effort
|
52
|
+
effort.next_execute_at - Time.now
|
53
|
+
end
|
54
|
+
|
55
|
+
def this_should_be_executed_in_the_future effort
|
56
|
+
effort.next_execute_at > Time.now
|
57
|
+
end
|
58
|
+
|
59
|
+
end
|
60
|
+
|
23
61
|
end
|
62
|
+
|
24
63
|
end
|
data/lib/seam/sidekiq/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: seam-sidekiq
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Darren Cauthon
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-09-
|
11
|
+
date: 2014-09-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: seam
|