shoryuken-later 0.0.5.2 → 0.0.5.3
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 +8 -8
- data/README.md +83 -23
- data/lib/shoryuken/later/cli.rb +3 -2
- data/lib/shoryuken/later/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
ZGU2ZmZlMzE1Y2U3YjE5ZWFlMzlkNmY1NzkwYzE3OTU4MmY3Y2Y5Zg==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
OWU1NjQwOTY5M2E4ZTQwNWM3OTBjOWJiMjFmMjdiZGQ4ZTlkZTJjNg==
|
7
7
|
!binary "U0hBNTEy":
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
YjEzZGMwNzcwYjY4NzE4NGJmN2E3NTc4YmNhZTFlZWRjNWJjNDg0MmIwYmM5
|
10
|
+
MzRkYzk0NDhhNzgzY2Q2YTM0N2Y2ZTk3YWY1ODc0YWFmYmYxMmQ3ZjdlOWU1
|
11
|
+
NzlmZWQwMWIyZTQ5MWE1ZWU5ZDM1ODhiZjcyNDU2YmIzZGJjZDE=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
NjExYzQ0YWI1YjYyOWFiMmE5ZjdiNzRkZTZhZmM3Nzk0ZDEzZGNjYzk1OWVi
|
14
|
+
MjYzNGYzMTExMTZhMzAzYzJlMGZlZWE5MGMwOTlmNzk1M2U2YzgzMWQwNDM0
|
15
|
+
ZmVkNGU2NzIwOTRlZGMyMzNjZjhjZjYwNzdlZDU5ZjVjYzE2NTE=
|
data/README.md
CHANGED
@@ -1,27 +1,10 @@
|
|
1
1
|
# shoryuken-later
|
2
2
|
|
3
3
|
A scheduling plugin for [Shoryuken](https://github.com/phstc/shoryuken) that uses [Dynamo DB](https://aws.amazon.com/dynamodb/)
|
4
|
-
to
|
4
|
+
to delay messages arbitrarily far into the future.
|
5
5
|
|
6
6
|
## Features
|
7
7
|
|
8
|
-
### Integration with Shoryuken::Worker
|
9
|
-
|
10
|
-
A new method named `perform_later` is added to `Shoryuken::Worker` allowing messages to be delayed arbitrarily far into the future. If the delay is 15 minutes or less, then the message is enqueued into the specified SQS `:queue` as usual. Otherwise, the message is inserted into the specified DynamoDB `:schedule_table`.
|
11
|
-
|
12
|
-
```ruby
|
13
|
-
require 'shoryuken-later'
|
14
|
-
|
15
|
-
class MyWorker
|
16
|
-
include Shoryuken::Worker
|
17
|
-
|
18
|
-
shoryuken_options queue: 'default', schedule_table: 'default_schedule'
|
19
|
-
end
|
20
|
-
|
21
|
-
# Schedules a message to be processed 30 minutes from now.
|
22
|
-
MyWorker.perform_later(Time.now + 30 * 60, 'Foobar')
|
23
|
-
```
|
24
|
-
|
25
8
|
### One or more schedule tables
|
26
9
|
|
27
10
|
Supports polling one or more DynamoDB tables for messages.
|
@@ -38,11 +21,12 @@ later:
|
|
38
21
|
You can use the same configuration file for both `Shoryuken` and `Shoryuken::Later`, because the new configuration options are namespaced.
|
39
22
|
|
40
23
|
```yaml
|
41
|
-
#
|
24
|
+
# These keys are used by both Shoryuken and Shoryuken::Later
|
42
25
|
aws:
|
43
26
|
access_key_id: ... # or <%= ENV['AWS_ACCESS_KEY_ID'] %>
|
44
27
|
secret_access_key: ... # or <%= ENV['AWS_SECRET_ACCESS_KEY'] %>
|
45
28
|
region: us-east-1 # or <%= ENV['AWS_REGION'] %>
|
29
|
+
logfile: some/path/to/file.log
|
46
30
|
|
47
31
|
# This key is only used by Shoryuken::Later
|
48
32
|
later:
|
@@ -50,9 +34,6 @@ later:
|
|
50
34
|
pidfile: some/path/to/file.pid
|
51
35
|
tables:
|
52
36
|
- table1
|
53
|
-
|
54
|
-
# These keys are used by both Shoryuken and Shoryuken::Later
|
55
|
-
logfile: some/path/to/file.log
|
56
37
|
|
57
38
|
# These keys are only used by Shoryuken
|
58
39
|
concurrency: 3
|
@@ -60,4 +41,83 @@ delay: 0
|
|
60
41
|
queues:
|
61
42
|
- [queue1, 1]
|
62
43
|
- [queue2, 2]
|
63
|
-
```
|
44
|
+
```
|
45
|
+
|
46
|
+
## Usage
|
47
|
+
|
48
|
+
### Integration with ActiveJob
|
49
|
+
|
50
|
+
A custom ActiveJob adapter can used to support delaying messages arbitrarily far into the future.
|
51
|
+
|
52
|
+
```ruby
|
53
|
+
# config/application.rb
|
54
|
+
config.active_job.queue_adapter = :shoryuken_later
|
55
|
+
```
|
56
|
+
|
57
|
+
When you use the `:shoryuken_later` queue adapter, jobs to be performed farther than 15 minutes into the future (by setting the `wait` or `wait_until` ActiveJob options), will be inserted into the *default* schedule table. You can set the default schedule table in an initializer.
|
58
|
+
|
59
|
+
```ruby
|
60
|
+
# config/initializers/shoryuken_later.rb
|
61
|
+
Shoryuken::Later.default_table = "#{Rails.env}_myapp_later"
|
62
|
+
```
|
63
|
+
|
64
|
+
|
65
|
+
### Integration with Shoryuken::Worker
|
66
|
+
|
67
|
+
A new method named `perform_later` is added to `Shoryuken::Worker` allowing messages to be delayed arbitrarily far into the future. If the delay is 15 minutes or less, then the message is enqueued into the specified SQS `:queue` as usual. Otherwise, the message is inserted into the specified DynamoDB `:schedule_table`.
|
68
|
+
|
69
|
+
```ruby
|
70
|
+
require 'shoryuken-later'
|
71
|
+
|
72
|
+
class MyWorker
|
73
|
+
include Shoryuken::Worker
|
74
|
+
|
75
|
+
shoryuken_options queue: 'default', schedule_table: 'default_schedule'
|
76
|
+
end
|
77
|
+
|
78
|
+
# Schedules a message to be processed 30 minutes from now.
|
79
|
+
MyWorker.perform_later(Time.now + 30 * 60, 'Foobar')
|
80
|
+
```
|
81
|
+
|
82
|
+
|
83
|
+
## Requirements
|
84
|
+
|
85
|
+
Ruby 2.0 or greater. Ruby 1.9 is no longer supported.
|
86
|
+
|
87
|
+
## Installation
|
88
|
+
|
89
|
+
Add this line to your application's Gemfile:
|
90
|
+
|
91
|
+
```ruby
|
92
|
+
gem 'shoryuken-later'
|
93
|
+
```
|
94
|
+
|
95
|
+
Or to get the latest updates:
|
96
|
+
|
97
|
+
```ruby
|
98
|
+
gem 'shoryuken-later', github: 'joekhoobyar/shoryuken-later', branch: 'master'
|
99
|
+
```
|
100
|
+
|
101
|
+
And then execute:
|
102
|
+
|
103
|
+
$ bundle
|
104
|
+
|
105
|
+
Or install it yourself as:
|
106
|
+
|
107
|
+
$ gem install shoryuken-later
|
108
|
+
|
109
|
+
## Documentation
|
110
|
+
|
111
|
+
Learn about using Shoryuken at the [Shoryuken Wiki](https://github.com/phstc/shoryuken/wiki).
|
112
|
+
|
113
|
+
## Credits
|
114
|
+
|
115
|
+
[Pablo Cantero](https://github.com/phstc), creator of [Shoryuken](https://github.com/phstc/shoryuken), and [everybody who contributed to it](https://github.com/phstc/shoryuken/graphs/contributors). I borrowed a lot of code from Shoryuken itself as a shortcut to making this gem.
|
116
|
+
|
117
|
+
## Contributing
|
118
|
+
|
119
|
+
1. Fork it ( https://github.com/joekhoobyar/shoryuken-later/fork )
|
120
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
121
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
122
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
123
|
+
5. Create a new Pull Request
|
data/lib/shoryuken/later/cli.rb
CHANGED
@@ -79,6 +79,7 @@ module Shoryuken
|
|
79
79
|
::Rails::Application.initializer "shoryuken-later.eager_load" do
|
80
80
|
::Rails.application.config.eager_load = true
|
81
81
|
end
|
82
|
+
require 'shoryuken/later/active_job_adapter' if defined?(::ActiveJob)
|
82
83
|
require File.expand_path("config/environment.rb")
|
83
84
|
end
|
84
85
|
|
@@ -215,10 +216,10 @@ module Shoryuken
|
|
215
216
|
|
216
217
|
config = options[:config_file] ? parse_config(options[:config_file]).deep_symbolize_keys : {}
|
217
218
|
|
218
|
-
Shoryuken::Later.options[:later].merge!(config.delete(:later))
|
219
|
+
Shoryuken::Later.options[:later].merge!(config.delete(:later) || {})
|
219
220
|
Shoryuken::Later.options.merge!(config)
|
220
221
|
|
221
|
-
Shoryuken::Later.options[:later].merge!(options.delete(:later))
|
222
|
+
Shoryuken::Later.options[:later].merge!(options.delete(:later) || {})
|
222
223
|
Shoryuken::Later.options.merge!(options)
|
223
224
|
|
224
225
|
# Tables from command line options take precedence...
|