que-scheduler 1.1.0 → 1.2.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
2
  SHA256:
3
- metadata.gz: aa36f08ca0ae716d68fe7e97532c232a4e7740a625869962f433591ea034a987
4
- data.tar.gz: c36e219b43f7b8a84fce908f21c32f5289512b2f9cf681fbb063046773165d72
3
+ metadata.gz: '0099d4a7447334aabd3912520a2c7575deac3a05e8b564e3711dcf913235dfd2'
4
+ data.tar.gz: fb3b867db4ac06c74b81d3ef41a0593dbcf90ac30754ab38746b3a9ef41a17ab
5
5
  SHA512:
6
- metadata.gz: 767db06347c8be4daa350a1b38df514ac7ae58c124a5c022cf284b6bb32ba2794cf58df053ecce4ecd00c2e8532bd6de3f432fa4a5f6bbc05890aea818fc4138
7
- data.tar.gz: 340c0d10f00ccfdeae9791d48e0112b227c92a1c9e00774a9b8d7bdb632a96587fac1be6fef59e597569491c5da6b39f21cfc89ce26fc8ad9c40104c2a668ae8
6
+ metadata.gz: b10b18c7ffb66739556743aec5badbc1f3934edcb0db960c3d3202de327c24495320f73667bc22e207e03ea02fc477c4422f32bd0b0e564400af67185efcc1d2
7
+ data.tar.gz: 7400225137aa503175f42b26d04d0943f973ffb923e60e92bdf0acbc2a2ac664ef43782f5b61cce6b3b4bb4f9e5c276aa45e7f594aa5bb264ea5fd70188d4a41
data/README.md CHANGED
@@ -47,7 +47,7 @@ For example:
47
47
  CancelAbandonedOrders:
48
48
  cron: "*/5 * * * *"
49
49
 
50
- # Specify the job_class, using any name for the key.
50
+ # Specify the job_class, using any name for the key
51
51
  queue_documents_for_indexing:
52
52
  cron: "0 0 * * *"
53
53
  class: QueueDocuments
@@ -67,12 +67,16 @@ SendOrders:
67
67
  cron: "0 0 * * *"
68
68
  args: ['open']
69
69
 
70
- # Use simpler cron syntax.
70
+ # Use simpler cron syntax
71
71
  SendBilling:
72
72
  cron: "@daily"
73
+
74
+ # Use timezone cron syntax
75
+ SendCoupons:
76
+ cron: "0 7 * * * America/Los_Angeles"
73
77
 
74
78
  # Altogether now
75
- all_args_job:
79
+ all_options_job:
76
80
  cron: "0 0 * * *"
77
81
  class: QueueDocuments
78
82
  queue: reporting
@@ -115,12 +119,16 @@ Additionally, like Que, when your database is backed up, your scheduling state i
115
119
  workers are down for an extended period, or a DB restore is performed, the scheduler will always be
116
120
  in a coherent state with the rest of your database.
117
121
 
118
- ## Multiple scheduler detection
122
+ ## Concurrent scheduler detection
119
123
 
120
124
  No matter how many tasks you have defined in your config, you will only ever need one que-scheduler
121
125
  job enqueued. que-scheduler knows this, and it will check before performing any operations that
122
126
  there is only one of itself present.
123
127
 
128
+ It also follows que job design [best practices](https://github.com/chanks/que/blob/master/docs/writing_reliable_jobs.md),
129
+ using ACID guarantees, to ensure that it will never run multiple times. If the scheduler crashes for any reason,
130
+ it will rollback correctly and try again. It won't schedule jobs twice for a cron match.
131
+
124
132
  ## How it works
125
133
 
126
134
  que-scheduler is a job that reads a config file, enqueues any jobs it determines that need to be run,
@@ -26,7 +26,7 @@ module Que
26
26
  job_class = Object.const_get(v)
27
27
  job_class < Que::Job ? job_class : err_field(:job_class, v)
28
28
  }
29
- property :cron, transform_with: ->(v) { Fugit::Cron.new(v) || err_field(:cron, v) }
29
+ property :cron, transform_with: ->(v) { Fugit::Cron.parse(v) || err_field(:cron, v) }
30
30
  property :queue, transform_with: ->(v) { v.is_a?(String) ? v : err_field(:queue, v) }
31
31
  property :priority, transform_with: ->(v) { v.is_a?(Integer) ? v : err_field(:priority, v) }
32
32
  property :args
@@ -1,5 +1,5 @@
1
1
  module Que
2
2
  module Scheduler
3
- VERSION = '1.1.0'.freeze
3
+ VERSION = '1.2.0'.freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: que-scheduler
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Harry Lascelles
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-03-24 00:00:00.000000000 Z
11
+ date: 2018-03-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -38,34 +38,20 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '3.10'
41
- - !ruby/object:Gem::Dependency
42
- name: et-orbi
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - ">"
46
- - !ruby/object:Gem::Version
47
- version: 1.0.5
48
- type: :runtime
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - ">"
53
- - !ruby/object:Gem::Version
54
- version: 1.0.5
55
41
  - !ruby/object:Gem::Dependency
56
42
  name: fugit
57
43
  requirement: !ruby/object:Gem::Requirement
58
44
  requirements:
59
45
  - - "~>"
60
46
  - !ruby/object:Gem::Version
61
- version: '1'
47
+ version: '1.1'
62
48
  type: :runtime
63
49
  prerelease: false
64
50
  version_requirements: !ruby/object:Gem::Requirement
65
51
  requirements:
66
52
  - - "~>"
67
53
  - !ruby/object:Gem::Version
68
- version: '1'
54
+ version: '1.1'
69
55
  - !ruby/object:Gem::Dependency
70
56
  name: hashie
71
57
  requirement: !ruby/object:Gem::Requirement