delayed_cron 0.2.5 → 0.2.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.
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