sidekiq-cron 1.0.4 → 1.3.0

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
- SHA1:
3
- metadata.gz: a6e4efebfa16f1bedd09081f160e3db3d778e0b9
4
- data.tar.gz: b23fe76d331791eabd457cd85f797181bf086712
2
+ SHA256:
3
+ metadata.gz: '091abb12b81574bf5fad5130f4e343aaad6adeceb0daae8c46a6d09dbaa7ee58'
4
+ data.tar.gz: 1ecbf9ba2fd82ff69a423993e7aa3678e7fabc6fb55e2acea74ec1cb83a8af3d
5
5
  SHA512:
6
- metadata.gz: 3286595909fbc0c05504fb38b12f79544b020a627454701adc8e7b10fd7afc7a27cf27a3edf062b3840eca9e4ebc4964149bc9742e6d1bd85d0177cdea6fe18b
7
- data.tar.gz: 337457599316fcdec08c10d29fab8b7d130584c345c97f3e4ad2bc93a2c7f2a240689776be8da24d380057ec23481995f0eff456e3789e68a3cc979012f817bf
6
+ metadata.gz: 9cfd9a8e2efdcf3ae293533421a1c09b7dcc3154e90d749fd3e3a47ccaff6d673daa68877b2ca3b7939139603ee04e816c8c5ae51ef64d818d8d013eff43d9f0
7
+ data.tar.gz: 0d86e3bb4b06869889934a37ef30f117a4a28769a07e75b3d7547c49d9d8e5dfe4931f608b8b7b18cdc1b70cfdaf6be55aa043844b047b877ff7dfa21271a9f4
data/Changes.md CHANGED
@@ -1,3 +1,37 @@
1
+ v 1.3.0
2
+ -------
3
+
4
+ - add confirmation dialog when enquing jobs from UI
5
+ - start to support Sidekiq `average_scheduled_poll_interval` option (replaced `poll_interval`)
6
+ - enable to use latest fugit to parse cron notation alowing use of natural language (ie `"every 30 minutes"`)
7
+ - fix deprecation warning for redis 4.6.x
8
+ - fix different response from Redis#exists in different redis versions
9
+ - All PRs:
10
+ - https://github.com/ondrejbartas/sidekiq-cron/pull/275
11
+ - https://github.com/ondrejbartas/sidekiq-cron/pull/287
12
+ - https://github.com/ondrejbartas/sidekiq-cron/pull/309
13
+ - https://github.com/ondrejbartas/sidekiq-cron/pull/299
14
+ - https://github.com/ondrejbartas/sidekiq-cron/pull/314
15
+ - https://github.com/ondrejbartas/sidekiq-cron/pull/288
16
+
17
+ v 1.2.0
18
+ -------
19
+
20
+ - updated readme
21
+ - fix problem with Sidekiq::Launcher and requiring it when not needed
22
+ - better patching of Sidekiq::Launcher
23
+ - fixed Dockerfile
24
+
25
+ v 1.1.0
26
+ -------
27
+
28
+ - updated readme
29
+ - fix unit tests - changed argument error when getting invalid cron format
30
+ - when fallbacking old job enqueued time use `Time.parse` šwithout format (so ruby can decide best method to parse it)
31
+ - add option `date_as_argument` which will add to your job arguments on last place `Time.now.to_f` when it was eneuqued
32
+ - add option `description` which will allow you to add notes to your jobs so in web view you can see it
33
+ - fixed translations
34
+
1
35
  v 1.0.4
2
36
  -------
3
37
 
data/Dockerfile CHANGED
@@ -1,4 +1,4 @@
1
- FROM ruby:2.3.1
1
+ FROM ruby:2.4
2
2
  MAINTAINER Joao Serra <joaopfserra@gmail.com>
3
3
 
4
4
  RUN apt-get update && \
data/Gemfile CHANGED
@@ -1,32 +1,3 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- gem 'sidekiq', '>= 4.2.1'
4
- gem 'fugit', '~> 1.1'
5
-
6
- group :development do
7
- gem 'bundler'
8
- gem 'simplecov'
9
-
10
- gem 'redis-namespace', '>= 1.5.2'
11
- gem 'shoulda-context'
12
-
13
- gem 'rack'
14
- gem 'rack-test'
15
-
16
- gem 'jeweler'
17
-
18
- gem 'minitest'
19
- gem 'test-unit'
20
- gem 'sdoc' # sdoc -N .
21
-
22
- gem 'slim'
23
- gem 'sinatra'
24
-
25
- gem 'mocha'
26
- gem 'coveralls'
27
-
28
- gem 'shotgun'
29
-
30
- gem 'guard'
31
- gem 'guard-minitest'
32
- end
3
+ gemspec
data/README.md CHANGED
@@ -1,64 +1,68 @@
1
- Sidekiq-Cron [![Gem Version](https://badge.fury.io/rb/sidekiq-cron.svg)](http://badge.fury.io/rb/sidekiq-cron) [![Build Status](https://travis-ci.org/ondrejbartas/sidekiq-cron.svg?branch=master)](https://travis-ci.org/ondrejbartas/sidekiq-cron) [![Coverage Status](https://coveralls.io/repos/github/ondrejbartas/sidekiq-cron/badge.svg?branch=master)](https://coveralls.io/github/ondrejbartas/sidekiq-cron?branch=master)
2
- ================================================================================================================================================================================================================================================================================================================================================================================================================================================
1
+ # Sidekiq-Cron
3
2
 
3
+ [![Gem Version](https://badge.fury.io/rb/sidekiq-cron.svg)](http://badge.fury.io/rb/sidekiq-cron)
4
+ [![Build Status](https://github.com/ondrejbartas/sidekiq-cron/workflows/CI/badge.svg?branch=master)](https://github.com/ondrejbartas/sidekiq-cron/actions)
5
+ [![Coverage Status](https://coveralls.io/repos/github/ondrejbartas/sidekiq-cron/badge.svg?branch=master)](https://coveralls.io/github/ondrejbartas/sidekiq-cron?branch=master)
4
6
  [![Join the chat at https://gitter.im/ondrejbartas/sidekiq-cron](https://badges.gitter.im/ondrejbartas/sidekiq-cron.svg)](https://gitter.im/ondrejbartas/sidekiq-cron?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
5
7
 
6
- [Introduction video about Sidekiq-Cron by Drifting Ruby](https://www.driftingruby.com/episodes/periodic-tasks-with-sidekiq-cron)
8
+ > A scheduling add-on for [Sidekiq](http://sidekiq.org)
7
9
 
8
- A scheduling add-on for [Sidekiq](http://sidekiq.org).
10
+ 🎬 [Introduction video about Sidekiq-Cron by Drifting Ruby](https://www.driftingruby.com/episodes/periodic-tasks-with-sidekiq-cron)
9
11
 
10
- Runs a thread alongside Sidekiq workers to schedule jobs at specified times (using cron notation `* * * * *` parsed by [Fugit](https://github.com/floraison/fugit), more about [cron notation](http://www.nncron.ru/help/EN/working/cron-format.htm).
12
+ Sidekiq-Cron runs a thread alongside Sidekiq workers to schedule jobs at specified times (using cron notation `* * * * *` parsed by [Fugit](https://github.com/floraison/fugit), more about [cron notation](http://www.nncron.ru/help/EN/working/cron-format.htm).
11
13
 
12
14
  Checks for new jobs to schedule every 30 seconds and doesn't schedule the same job multiple times when more than one Sidekiq worker is running.
13
15
 
14
16
  Scheduling jobs are added only when at least one Sidekiq process is running, but it is safe to use Sidekiq-Cron in environments where multiple Sidekiq processes or nodes are running.
15
17
 
16
- If you want to know how scheduling work, check out [under the hood](#under-the-hood)
18
+ If you want to know how scheduling work, check out [under the hood](#under-the-hood).
17
19
 
18
- Works with ActiveJob (Rails 4.2+)
20
+ Works with ActiveJob (Rails 4.2+).
19
21
 
20
- You don't need Sidekiq PRO, you can use this gem with plain __Sidekiq__.
22
+ You don't need Sidekiq PRO, you can use this gem with plain Sidekiq.
21
23
 
22
- Requirements
23
- -----------------
24
+ ## Upgrade from <0.6x to 1.0.x
24
25
 
25
- - Redis 2.8 or greater is required. (Redis 3.0.3 or greater is recommended for large scale use)
26
- - Sidekiq 5, or 4, or 3 and greater is required (for Sidekiq < 4 use version sidekiq-cron 0.3.1)
26
+ Please be aware that Sidekiq-Cron < 1.0 was relying on rufus-scheduler < 3.5. Using those older sidekiq-cron with rufus-scheduler >= 3.5 ends up with jobs failing on creation. Sidekiq-cron 1.0 includes a patch that switches from rufus-scheduler to rufus-scheduler's core dependency, fugit.
27
27
 
28
- Change Log
29
- ----------
30
- before upgrading to new version, please read:
31
- [Change Log](https://github.com/ondrejbartas/sidekiq-cron/blob/master/Changes.md)
28
+ ## Changelog
32
29
 
33
- Installation
34
- ------------
30
+ Before upgrading to new version, please read our [ChangeLog](Changes.md).
35
31
 
36
- $ gem install sidekiq-cron
32
+ ## Installation
37
33
 
38
- or add to your `Gemfile`
34
+ ### Requirements
39
35
 
40
- gem "sidekiq-cron", "~> 0.6.3"
36
+ - Redis 2.8 or greater is required. (Redis 3.0.3 or greater is recommended for large scale use)
37
+ - Sidekiq 5, or 4, or 3 and greater is required (for Sidekiq < 4 use version sidekiq-cron 0.3.1)
41
38
 
39
+ Install the gem:
42
40
 
43
- Getting Started
44
- -----------------
41
+ $ gem install sidekiq-cron
42
+
43
+ Or add to your `Gemfile` and run `bundle install`:
45
44
 
45
+ gem "sidekiq-cron", "~> 1.1"
46
+
47
+ ## Getting Started
46
48
 
47
49
  If you are not using Rails, you need to add `require 'sidekiq-cron'` somewhere after `require 'sidekiq'`.
48
50
 
49
- _Job properties_:
51
+ **Job properties:**
50
52
 
51
53
  ```ruby
52
54
  {
53
- 'name' => 'name_of_job', #must be uniq!
54
- 'cron' => '1 * * * *', # execute at 1 minute of every hour, ex: 12:01, 13:01, 14:01, 15:01...etc(HH:MM)
55
+ 'name' => 'name_of_job', # must be uniq!
56
+ 'cron' => '1 * * * *', # execute at 1 minute of every hour, ex: 12:01, 13:01, 14:01, 15:01, ... (HH:MM)
55
57
  'class' => 'MyClass',
56
- #OPTIONAL
58
+ # OPTIONAL
57
59
  'queue' => 'name of queue',
58
- 'args' => '[Array or Hash] of arguments which will be passed to perform method',
60
+ 'args' => '[Array or Hash] of arguments which will be passed to perform method',
61
+ 'date_as_argument' => true, # add the time of execution as last argument of the perform method
59
62
  'active_job' => true, # enqueue job through rails 4.2+ active job interface
60
63
  'queue_name_prefix' => 'prefix', # rails 4.2+ active job queue with prefix
61
- 'queue_name_delimiter' => '.' # rails 4.2+ active job queue with custom delimiter
64
+ 'queue_name_delimiter' => '.', # rails 4.2+ active job queue with custom delimiter
65
+ 'description' => 'A sentence describing what work this job performs.'
62
66
  }
63
67
  ```
64
68
 
@@ -66,20 +70,27 @@ _Job properties_:
66
70
 
67
71
  For testing your cron notation you can use [crontab.guru](https://crontab.guru).
68
72
 
69
- sidekiq-cron uses [Fugit](https://github.com/floraison/fugit) to parse the cronline.
73
+ Sidekiq-Cron uses [Fugit](https://github.com/floraison/fugit) to parse the cronline.
74
+
70
75
  If using Rails, this is evaluated against the timezone configured in Rails, otherwise the default is UTC.
71
76
 
72
77
  If you want to have your jobs enqueued based on a different time zone you can specify a timezone in the cronline,
73
78
  like this `'0 22 * * 1-5 America/Chicago'`.
74
79
 
75
- See [rufus-scheduler documentation](https://github.com/jmettraux/rufus-scheduler#a-note-about-timezones) for more information. (note. Rufus scheduler is using Fugit under the hood, so documentation for Rufus Scheduler can help you also)
80
+ See [rufus-scheduler documentation](https://github.com/jmettraux/rufus-scheduler#a-note-about-timezones) for more information.
81
+
82
+ **NOTE** Rufus scheduler is using Fugit under the hood, so documentation for Rufus Scheduler can help you also.
76
83
 
77
84
  ### What objects/classes can be scheduled
85
+
78
86
  #### Sidekiq Worker
87
+
79
88
  In this example, we are using `HardWorker` which looks like:
89
+
80
90
  ```ruby
81
91
  class HardWorker
82
92
  include Sidekiq::Worker
93
+
83
94
  def perform(*args)
84
95
  # do something
85
96
  end
@@ -87,7 +98,9 @@ end
87
98
  ```
88
99
 
89
100
  #### Active Job Worker
90
- You can schedule: `ExampleJob` which looks like:
101
+
102
+ You can schedule `ExampleJob` which looks like:
103
+
91
104
  ```ruby
92
105
  class ExampleJob < ActiveJob::Base
93
106
  queue_as :default
@@ -98,11 +111,15 @@ class ExampleJob < ActiveJob::Base
98
111
  end
99
112
  ```
100
113
 
114
+ For Active jobs you can use `symbolize_args: true` in `Sidekiq::Cron::Job.create` or in Hash configuration,
115
+ which will ensure that arguments you are passing to it will be symbolized when passed back to `perform` method in worker.
116
+
101
117
  #### Adding Cron job:
102
- ```ruby
103
118
 
119
+ ```ruby
104
120
  class HardWorker
105
121
  include Sidekiq::Worker
122
+
106
123
  def perform(name, count)
107
124
  # do something
108
125
  end
@@ -123,16 +140,15 @@ else
123
140
  puts job.errors
124
141
  end
125
142
 
126
- #or simple
127
-
143
+ # or simple
128
144
  unless job.save
129
- puts job.errors #will return array of errors
145
+ puts job.errors # will return array of errors
130
146
  end
131
147
  ```
132
148
 
133
149
  Load more jobs from hash:
134
- ```ruby
135
150
 
151
+ ```ruby
136
152
  hash = {
137
153
  'name_of_job' => {
138
154
  'class' => 'MyClass',
@@ -149,6 +165,7 @@ Sidekiq::Cron::Job.load_from_hash hash
149
165
  ```
150
166
 
151
167
  Load more jobs from array:
168
+
152
169
  ```ruby
153
170
  array = [
154
171
  {
@@ -167,17 +184,17 @@ array = [
167
184
  Sidekiq::Cron::Job.load_from_array array
168
185
  ```
169
186
 
170
- Bang-suffixed methods will remove jobs that are not present in the given hash/array,
171
- update jobs that have the same names, and create new ones when the names are previously unknown.
187
+ Bang-suffixed methods will remove jobs that are not present in the given hash/array, update jobs that have the same names, and create new ones when the names are previously unknown.
172
188
 
173
189
  ```ruby
174
190
  Sidekiq::Cron::Job#load_from_hash! hash
175
191
  Sidekiq::Cron::Job#load_from_array! array
176
192
  ```
177
193
 
178
- or from YML (same notation as Resque-scheduler)
194
+ Or from YAML (same notation as Resque-scheduler):
195
+
179
196
  ```yaml
180
- #config/schedule.yml
197
+ # config/schedule.yml
181
198
 
182
199
  my_first_job:
183
200
  cron: "*/5 * * * *"
@@ -193,7 +210,7 @@ second_job:
193
210
  ```
194
211
 
195
212
  ```ruby
196
- #initializers/sidekiq.rb
213
+ # config/initializers/sidekiq.rb
197
214
  schedule_file = "config/schedule.yml"
198
215
 
199
216
  if File.exist?(schedule_file) && Sidekiq.server?
@@ -201,56 +218,60 @@ if File.exist?(schedule_file) && Sidekiq.server?
201
218
  end
202
219
  ```
203
220
 
204
- or you can use for loading jobs from yml file [sidekiq-cron-tasks](https://github.com/coverhound/sidekiq-cron-tasks) which will add rake task `bundle exec rake sidekiq_cron:load` to your rails application.
221
+ Or you can use for loading jobs from yml file [sidekiq-cron-tasks](https://github.com/coverhound/sidekiq-cron-tasks) which will add rake task `bundle exec rake sidekiq_cron:load` to your rails application.
222
+
223
+ ### Finding jobs
205
224
 
206
- #### Finding jobs
207
225
  ```ruby
208
- #return array of all jobs
226
+ # return array of all jobs
209
227
  Sidekiq::Cron::Job.all
210
228
 
211
- #return one job by its unique name - case sensitive
229
+ # return one job by its unique name - case sensitive
212
230
  Sidekiq::Cron::Job.find "Job Name"
213
231
 
214
- #return one job by its unique name - you can use hash with 'name' key
232
+ # return one job by its unique name - you can use hash with 'name' key
215
233
  Sidekiq::Cron::Job.find name: "Job Name"
216
234
 
217
- #if job can't be found nil is returned
235
+ # if job can't be found nil is returned
218
236
  ```
219
237
 
220
- #### Destroy jobs:
238
+ ### Destroy jobs:
239
+
221
240
  ```ruby
222
- #destroys all jobs
241
+ # destroy all jobs
223
242
  Sidekiq::Cron::Job.destroy_all!
224
243
 
225
- #destroy job by its name
244
+ # destroy job by its name
226
245
  Sidekiq::Cron::Job.destroy "Job Name"
227
246
 
228
- #destroy found job
247
+ # destroy found job
229
248
  Sidekiq::Cron::Job.find('Job name').destroy
230
249
  ```
231
250
 
232
- #### Work with job:
251
+ ### Work with job:
252
+
233
253
  ```ruby
234
254
  job = Sidekiq::Cron::Job.find('Job name')
235
255
 
236
- #disable cron scheduling
256
+ # disable cron scheduling
237
257
  job.disable!
238
258
 
239
- #enable cron scheduling
259
+ # enable cron scheduling
240
260
  job.enable!
241
261
 
242
- #get status of job:
262
+ # get status of job:
243
263
  job.status
244
264
  # => enabled/disabled
245
265
 
246
- #enqueue job right now!
266
+ # enqueue job right now!
247
267
  job.enque!
248
268
  ```
249
269
 
250
- How to start scheduling?
270
+ ### How to start scheduling?
271
+
251
272
  Just start Sidekiq workers by running:
252
273
 
253
- sidekiq
274
+ $ sidekiq
254
275
 
255
276
  ### Web UI for Cron Jobs
256
277
 
@@ -263,7 +284,7 @@ With this, you will get:
263
284
  ### Forking Processes
264
285
 
265
286
  If you're using a forking web server like Unicorn you may run into an issue where the Redis connection is used
266
- before the process forks, causing the following exception
287
+ before the process forks, causing the following exception:
267
288
 
268
289
  Redis::InheritedError: Tried to use a connection from a child process without reconnecting. You need to reconnect to Redis after forking.
269
290
 
@@ -279,37 +300,100 @@ Sidekiq.configure_server do |config|
279
300
  end
280
301
  ```
281
302
 
282
- Note that this API is only available in Sidekiq 3.x.x.
303
+ **NOTE** This API is only available in Sidekiq 3.x.
304
+
305
+ ## Tests in Sidekiq-Cron
306
+
307
+ If you need to check code of sidekiq-cron run `rake test` in this repository.
283
308
 
284
309
  ## Under the hood
285
310
 
286
311
  When you start the Sidekiq process, it starts one thread with `Sidekiq::Poller` instance, which perform the adding of scheduled jobs to queues, retries etc.
287
312
 
288
- Sidekiq-Cron adds itself into this start procedure and starts another thread with `Sidekiq::Cron::Poller` which checks all enabled Sidekiq cron jobs every 10 seconds, if they should be added to queue (their cronline matches time of check).
313
+ Sidekiq-Cron adds itself into this start procedure and starts another thread with `Sidekiq::Cron::Poller` which checks all enabled Sidekiq cron jobs every 30 seconds, if they should be added to queue (their cronline matches time of check).
289
314
 
290
315
  Sidekiq-Cron is checking jobs to be enqueued every 30s by default, you can change it by setting:
291
- ```
316
+
317
+ ```ruby
318
+ # For Sidekiq >= 3.4
319
+ Sidekiq.options[:average_scheduled_poll_interval] = 10
320
+
321
+ # For older versions of Sidekiq
292
322
  Sidekiq.options[:poll_interval] = 10
293
323
  ```
294
324
 
295
325
  Sidekiq-Cron is safe to use with multiple sidekiq processes or nodes. It uses a Redis sorted set to determine that only the first process who asks can enqueue scheduled jobs into the queue.
296
326
 
297
327
  ## Thanks to
328
+ * [@284km](https://github.com/284km)
298
329
  * [@7korobi](https://github.com/7korobi)
330
+ * [@adrianobarroso](https://github.com/adrianobarroso])
331
+ * [@alexeyramazanov](https://github.com/alexeyramazanov)
299
332
  * [@antulik](https://github.com/antulik)
333
+ * [@arthurbryant](https://github.com/arthurbryant)
334
+ * [@cabello](https://github.com/cabello)
335
+ * [@camkidman](https://github.com/camkidman)
336
+ * [@cgunther](https://github.com/cgunther)
337
+ * [@chuchuva](https://github.com/chuchuva)
338
+ * [@corroded](https://github.com/corroded)
339
+ * [@D1ceWard](https://github.com/D1ceWard])
340
+ * [@davidtrogers](https://github.com/davidtrogers)
341
+ * [@denispeplin](https://github.com/denispeplin)
342
+ * [@dwarburt](https://github.com/dwarburt)
343
+ * [@Envek](https://github.com/Envek)
344
+ * [@Eunix](https://github.com/Eunix)
300
345
  * [@felixbuenemann](https://github.com/felixbuenemann)
346
+ * [@film42](https://github.com/film42])
347
+ * [@giriss](https://github.com/giriss)
348
+ * [@gitter](https://github.com/gitter)
301
349
  * [@gstark](https://github.com/gstark)
350
+ * [@h0jeZvgoxFepBQ2C](https://github.com/h0jeZvgoxFepBQ2C)
351
+ * [@incubus](https://github.com/incubus)
352
+ * [@jack0pan](https://github.com/jack0pan)
353
+ * [@jmettraux](https://github.com/jmettraux)
354
+ * [@johnathanludwig](https://github.com/johnathanludwig)
355
+ * [@joshuacronemeyer](https://github.com/joshuacronemeyer)
356
+ * [@jpserra](https://github.com/jpserra)
357
+ * [@Junyulive](https://github.com/Junyulive)
358
+ * [@le0pard](https://github.com/le0pard)
359
+ * [@lepfhty](https://github.com/lepfhty)
360
+ * [@macool](https://github.com/macool)
361
+ * [@masayukioguni](https://github.com/masayukioguni)
362
+ * [@matsimitsu](https://github.com/matsimitsu)
363
+ * [@merrington](https://github.com/merrington)
364
+ * [@MikeRogers0](https://github.com/MikeRogers0)
365
+ * [@MMartyn](https://github.com/MMartyn)
366
+ * [@mrchucho](https://github.com/mrchucho)
367
+ * [@n00dle](https://github.com/n00dle)
368
+ * [@ngouy](https://github.com/ngouy)
369
+ * [@nhoffmann](https://github.com/nhoffmann)
370
+ * [@nicolasleger](https://github.com/nicolasleger)
371
+ * [@nikolai-b](https://github.com/nikolai-b)
372
+ * [@oivoodoo](https://github.com/oivoodoo)
373
+ * [@paniko0](https://github.com/paniko0)
374
+ * [@petergoldstein](https://github.com/petergoldstein)
302
375
  * [@RajRoR](https://github.com/RajRoR)
376
+ * [@rmm5t](https://github.com/rmm5t)
303
377
  * [@romeuhcf](https://github.com/romeuhcf)
378
+ * [@rylwin](https://github.com/rylwin)
379
+ * [@ryohashimoto](https://github.com/ryohashimoto)
380
+ * [@safeforge](https://github.com/safeforge)
304
381
  * [@siruguri](https://github.com/siruguri)
305
382
  * [@Soliah](https://github.com/Soliah)
383
+ * [@spk](https://github.com/spk)
306
384
  * [@stephankaag](https://github.com/stephankaag)
385
+ * [@stormsilver](https://github.com/stormsilver)
307
386
  * [@sue445](https://github.com/sue445)
308
387
  * [@sylg](https://github.com/sylg)
388
+ * [@tai2](https://github.com/tai2)
389
+ * [@tfluehmann](https://github.com/tfluehmann)
390
+ * [@timminkov](https://github.com/timminkov)
391
+ * [@tisba](https://github.com/tisba)
309
392
  * [@tmeinlschmidt](https://github.com/tmeinlschmidt)
393
+ * [@tomprats](https://github.com/tomprats)
394
+ * [@zedtux](https://github.com/zedtux)
310
395
  * [@zerobearing2](https://github.com/zerobearing2)
311
396
 
312
-
313
397
  ## Contributing to sidekiq-cron
314
398
 
315
399
  * Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet.
@@ -322,4 +406,4 @@ Sidekiq-Cron is safe to use with multiple sidekiq processes or nodes. It uses a
322
406
 
323
407
  ## Copyright
324
408
 
325
- Copyright (c) 2013 Ondrej Bartas. See LICENSE.txt for further details.
409
+ Copyright (c) 2013 Ondrej Bartas. See [LICENSE](LICENSE.txt) for further details.
data/Rakefile CHANGED
@@ -13,26 +13,8 @@ rescue Bundler::BundlerError => e
13
13
  end
14
14
  require 'rake'
15
15
 
16
- require 'jeweler'
17
- Jeweler::Tasks.new do |gem|
18
- # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
19
- gem.name = "sidekiq-cron"
20
- gem.homepage = "http://github.com/ondrejbartas/sidekiq-cron"
21
- gem.license = "MIT"
22
- gem.summary = %Q{Sidekiq Cron helps to add repeated scheduled jobs}
23
- gem.description = %Q{Enables to set jobs to be run in specified time (using CRON notation)}
24
- gem.email = "ondrej@bartas.cz"
25
- gem.authors = ["Ondrej Bartas"]
26
- # dependencies defined in Gemfile
27
- end
28
- Jeweler::RubygemsDotOrgTasks.new
29
-
30
16
  #TESTING
31
17
 
32
- task :doc do
33
- system 'sdoc -N .'
34
- end
35
-
36
18
  require 'rake/testtask'
37
19
  task :default => :test
38
20
 
data/docker-compose.yml CHANGED
@@ -18,4 +18,6 @@ services:
18
18
  - redis:redis.test
19
19
  depends_on:
20
20
  - common
21
- command: dockerize -wait tcp://redis.test:6379 -timeout 60s rake test
21
+ command: dockerize -wait tcp://redis.test:6379 -timeout 60s bundle exec rake test
22
+ volumes:
23
+ - .:/sidekiq-cron