delayed_cron 0.2.5 → 0.2.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c6fe770d7d97f8a9d7fdb92905e00b26d4e9c0d6
4
- data.tar.gz: 11bac5d4b29ae8bea2196fce52573ada1cf67d8e
3
+ metadata.gz: af92ec64204d2a7f01c4dbb31c511603e87b43f0
4
+ data.tar.gz: ec7ea779e56c8f82e2112eb19799beac0f1327e7
5
5
  SHA512:
6
- metadata.gz: 689013117dd11c13c5cb50178155f99d112824e2747a613125194e0cc46f53c7d8d78f5f3ed7937117ebc8a1e8def1d3a7a1775e7dc0c34cee187c100fe222ff
7
- data.tar.gz: ccb01e5dce56a3c3b454d088e204ef831bf4128b5d03090033b34a527e2599f15a99a98c22bc45b8d2c37b2901ecbc902f033079fd5e8465ea0c18d5392f9063
6
+ metadata.gz: 827a3222ad6c991c8a6ffb542ce3376efce3f43a922bf2fc8560b6de8f65db923d354b50c456716860bb1029aab773adb48c68ee2fd73979241c56aaca867631
7
+ data.tar.gz: 6f5a6750da95164b5531e4f5e4d9570888099a4482a8e3a1b7f1b2e2d25a87f68ea80d000fa56e80ef400a90c8302a7b6b264769024dfc79ac75a20873f6c6e9
data/.gitignore CHANGED
@@ -1,2 +1,3 @@
1
1
  *.DS_Store
2
- pkg
2
+ pkg
3
+ Gemfile.lock
data/README.md CHANGED
@@ -10,7 +10,7 @@ run cron jobs with sidekiq, delayed_job, resque, or sucker_punch
10
10
  ### INSTALL
11
11
 
12
12
  ```ruby
13
- gem "delayed_cron", "0.2.5"
13
+ gem "delayed_cron", "0.2.6"
14
14
  ```
15
15
 
16
16
  ### USE IN MODEL
@@ -8,21 +8,40 @@ module DelayedCron
8
8
  sidekiq_options :queue => :cron_job
9
9
 
10
10
  def self.enqueue_delayed_cron(klass, method_name, options)
11
- unless scheduled?(klass, method_name)
11
+ unless do_not_enqueue?(klass, method_name)
12
12
  options.symbolize_keys!
13
13
  perform_in(options[:interval], klass, method_name, options)
14
14
  end
15
15
  end
16
16
 
17
+ def self.do_not_enqueue?(klass, method_name)
18
+ scheduled?(klass, method_name) ||
19
+ enqueued?(klass, method_name) ||
20
+ retrying?(klass, method_name)
21
+ end
22
+
23
+ def self.retrying?(klass, method_name)
24
+ ::Sidekiq::RetrySet.new.collect(&:item).select do |item|
25
+ matches_kass_and_method?(item, klass, method_name)
26
+ end.present?
27
+ end
28
+
17
29
  def self.scheduled?(klass, method_name)
18
- items = []
19
- ::Sidekiq::ScheduledSet.new.each { |job| items << job.item }
20
- items.select do |item|
21
- item["args"][0] == klass &&
22
- item["args"][1] == method_name.to_s
30
+ ::Sidekiq::ScheduledSet.new.collect(&:item).select do |item|
31
+ matches_kass_and_method?(item, klass, method_name)
23
32
  end.present?
24
33
  end
25
34
 
35
+ def self.enqueued?(klass, method_name)
36
+ ::Sidekiq::Queue.new("cron_job").collect(&:item).select do |item|
37
+ matches_kass_and_method?(item, klass, method_name)
38
+ end.present?
39
+ end
40
+
41
+ def self.matches_kass_and_method?(item, klass, method_name)
42
+ item["args"][0] == klass && item["args"][1] == method_name.to_s
43
+ end
44
+
26
45
  def perform(klass, method_name, options)
27
46
  DelayedCron.process_job(klass, method_name, options)
28
47
  end
@@ -1,3 +1,3 @@
1
1
  module DelayedCron
2
- VERSION = "0.2.5"
2
+ VERSION = "0.2.6"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: delayed_cron
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.5
4
+ version: 0.2.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Justin Grubbs
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-09-04 00:00:00.000000000 Z
11
+ date: 2015-12-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: delayed_job
@@ -147,7 +147,6 @@ files:
147
147
  - .ruby-version
148
148
  - .travis.yml
149
149
  - Gemfile
150
- - Gemfile.lock
151
150
  - README.md
152
151
  - Rakefile
153
152
  - delayed_cron.gemspec
data/Gemfile.lock DELETED
@@ -1,151 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- delayed_cron (0.2.5)
5
-
6
- GEM
7
- remote: https://rubygems.org/
8
- specs:
9
- actionmailer (4.1.2)
10
- actionpack (= 4.1.2)
11
- actionview (= 4.1.2)
12
- mail (~> 2.5.4)
13
- actionpack (4.1.2)
14
- actionview (= 4.1.2)
15
- activesupport (= 4.1.2)
16
- rack (~> 1.5.2)
17
- rack-test (~> 0.6.2)
18
- actionview (4.1.2)
19
- activesupport (= 4.1.2)
20
- builder (~> 3.1)
21
- erubis (~> 2.7.0)
22
- activemodel (4.1.2)
23
- activesupport (= 4.1.2)
24
- builder (~> 3.1)
25
- activerecord (4.1.2)
26
- activemodel (= 4.1.2)
27
- activesupport (= 4.1.2)
28
- arel (~> 5.0.0)
29
- activesupport (4.1.2)
30
- i18n (~> 0.6, >= 0.6.9)
31
- json (~> 1.7, >= 1.7.7)
32
- minitest (~> 5.1)
33
- thread_safe (~> 0.1)
34
- tzinfo (~> 1.1)
35
- arel (5.0.1.20140414130214)
36
- builder (3.2.2)
37
- celluloid (0.15.2)
38
- timers (~> 1.1.0)
39
- codeclimate-test-reporter (0.3.0)
40
- simplecov (>= 0.7.1, < 1.0.0)
41
- connection_pool (2.0.0)
42
- delayed_job (4.0.2)
43
- activesupport (>= 3.0, < 4.2)
44
- diff-lcs (1.2.5)
45
- docile (1.1.5)
46
- erubis (2.7.0)
47
- hike (1.2.3)
48
- i18n (0.6.9)
49
- json (1.8.1)
50
- mail (2.5.4)
51
- mime-types (~> 1.16)
52
- treetop (~> 1.4.8)
53
- mime-types (1.25.1)
54
- minitest (5.3.5)
55
- mono_logger (1.1.0)
56
- multi_json (1.10.1)
57
- polyglot (0.3.5)
58
- rack (1.5.2)
59
- rack-protection (1.5.3)
60
- rack
61
- rack-test (0.6.2)
62
- rack (>= 1.0)
63
- rails (4.1.2)
64
- actionmailer (= 4.1.2)
65
- actionpack (= 4.1.2)
66
- actionview (= 4.1.2)
67
- activemodel (= 4.1.2)
68
- activerecord (= 4.1.2)
69
- activesupport (= 4.1.2)
70
- bundler (>= 1.3.0, < 2.0)
71
- railties (= 4.1.2)
72
- sprockets-rails (~> 2.0)
73
- railties (4.1.2)
74
- actionpack (= 4.1.2)
75
- activesupport (= 4.1.2)
76
- rake (>= 0.8.7)
77
- thor (>= 0.18.1, < 2.0)
78
- rake (10.4.2)
79
- redis (3.1.0)
80
- redis-namespace (1.5.0)
81
- redis (~> 3.0, >= 3.0.4)
82
- resque (1.25.2)
83
- mono_logger (~> 1.0)
84
- multi_json (~> 1.0)
85
- redis-namespace (~> 1.3)
86
- sinatra (>= 0.9.2)
87
- vegas (~> 0.1.2)
88
- rspec (2.99.0)
89
- rspec-core (~> 2.99.0)
90
- rspec-expectations (~> 2.99.0)
91
- rspec-mocks (~> 2.99.0)
92
- rspec-core (2.99.1)
93
- rspec-expectations (2.99.1)
94
- diff-lcs (>= 1.1.3, < 2.0)
95
- rspec-mocks (2.99.1)
96
- rspec-sidekiq (1.1.0)
97
- rspec (~> 2.0)
98
- sidekiq (>= 2.4.0)
99
- sidekiq (3.1.4)
100
- celluloid (>= 0.15.2)
101
- connection_pool (>= 2.0.0)
102
- json
103
- redis (>= 3.0.6)
104
- redis-namespace (>= 1.3.1)
105
- simplecov (0.8.2)
106
- docile (~> 1.1.0)
107
- multi_json
108
- simplecov-html (~> 0.8.0)
109
- simplecov-html (0.8.0)
110
- sinatra (1.4.5)
111
- rack (~> 1.4)
112
- rack-protection (~> 1.4)
113
- tilt (~> 1.3, >= 1.3.4)
114
- sprockets (2.12.1)
115
- hike (~> 1.2)
116
- multi_json (~> 1.0)
117
- rack (~> 1.0)
118
- tilt (~> 1.1, != 1.3.0)
119
- sprockets-rails (2.1.3)
120
- actionpack (>= 3.0)
121
- activesupport (>= 3.0)
122
- sprockets (~> 2.8)
123
- sucker_punch (1.1)
124
- celluloid (~> 0.15.2)
125
- thor (0.19.1)
126
- thread_safe (0.3.4)
127
- tilt (1.4.1)
128
- timecop (0.7.1)
129
- timers (1.1.0)
130
- treetop (1.4.15)
131
- polyglot
132
- polyglot (>= 0.3.1)
133
- tzinfo (1.2.1)
134
- thread_safe (~> 0.1)
135
- vegas (0.1.11)
136
- rack (>= 1.0.0)
137
-
138
- PLATFORMS
139
- ruby
140
-
141
- DEPENDENCIES
142
- codeclimate-test-reporter
143
- delayed_cron!
144
- delayed_job
145
- rails
146
- resque
147
- rspec
148
- rspec-sidekiq
149
- sidekiq
150
- sucker_punch
151
- timecop