sqeduler 0.3.3 → 0.3.4
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 +4 -4
- data/CHANGES.md +5 -1
- data/README.md +2 -0
- data/lib/sqeduler/config.rb +2 -1
- data/lib/sqeduler/service.rb +10 -4
- data/lib/sqeduler/version.rb +1 -1
- data/spec/service_spec.rb +32 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 18fa6822b0e491d4c9b06051fefc1658c8a90073
|
4
|
+
data.tar.gz: d25bf091049ddb0190d607eb7d72e19b8bff6a98
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 77f216253e1b98d9a27a1af2a4d364a8d8a69bf4e5f6a59911ebac5c8589a24f22e80a85f99a3ed3459427ffebcc258b4d983d764b614ba5e1fb3b32b3e1679b
|
7
|
+
data.tar.gz: a514c7e379d85750fcec035daf74dab2fc32a23d0829502d09952a423cb0725264804737ff4e6c3d3a917112f0215983b4b210b7630db34310d7c375df32a8b8
|
data/CHANGES.md
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
### 0.3.4 / 2016-03-28
|
2
|
+
|
3
|
+
* Add ability to use a client-provided connection pool rather than creating one
|
4
|
+
|
1
5
|
### 0.3.3 / 2016-03-25
|
2
6
|
|
3
7
|
* Fixed lock refresher not calling `redis_pool` properly so it wouldn't actually run
|
@@ -5,7 +9,7 @@
|
|
5
9
|
### 0.3.2 / 2016-03-10
|
6
10
|
|
7
11
|
* Fixed lock refresher failing to lock properly for exclusive runs
|
8
|
-
* Added debug logs for lock refresher
|
12
|
+
* Added debug logs for lock refresher
|
9
13
|
|
10
14
|
### 0.3.1 / 2016-02-17
|
11
15
|
|
data/README.md
CHANGED
@@ -55,6 +55,8 @@ Sqeduler::Service.config = config
|
|
55
55
|
Sqeduler::Service.start
|
56
56
|
```
|
57
57
|
|
58
|
+
You can also pass in your own `ConnectionPool` instance as `config.redis_pool` rather than providing configuration in `redis_hash`. If you do so, it's recommended to use a `Redis::Namespace` so that the keys sqeduler sets are namespaced uniquely.
|
59
|
+
|
58
60
|
See documentation for [Sidekiq::Scheduler](https://github.com/Moove-it/sidekiq-scheduler#scheduled-jobs-recurring-jobs)
|
59
61
|
for specifics on how to construct your schedule YAML file.
|
60
62
|
|
data/lib/sqeduler/config.rb
CHANGED
@@ -2,11 +2,12 @@
|
|
2
2
|
module Sqeduler
|
3
3
|
# Simple config for Sqeduler::Service
|
4
4
|
class Config
|
5
|
-
attr_accessor :logger, :redis_hash, :schedule_path,
|
5
|
+
attr_accessor :logger, :redis_hash, :redis_pool, :schedule_path,
|
6
6
|
:on_server_start, :on_client_start, :maintain_locks
|
7
7
|
|
8
8
|
def initialize(opts = {})
|
9
9
|
self.redis_hash = opts[:redis_hash]
|
10
|
+
self.redis_pool = opts[:redis_pool]
|
10
11
|
self.schedule_path = opts[:schedule_path]
|
11
12
|
self.on_server_start = opts[:on_server_start]
|
12
13
|
self.on_client_start = opts[:on_client_start]
|
data/lib/sqeduler/service.rb
CHANGED
@@ -95,12 +95,18 @@ module Sqeduler
|
|
95
95
|
# separate from Sidekiq's so that we don't saturate the client and server connection
|
96
96
|
# pools.
|
97
97
|
def redis_pool
|
98
|
-
@redis_pool ||=
|
98
|
+
@redis_pool ||= config_redis_pool
|
99
|
+
end
|
100
|
+
|
101
|
+
def config_redis_pool
|
102
|
+
redis_pool = if config.redis_pool
|
103
|
+
config.redis_pool
|
104
|
+
else
|
99
105
|
redis = { :namespace => "sqeduler" }.merge(config.redis_hash)
|
100
|
-
::Sidekiq::RedisConnection.create(redis)
|
101
|
-
verify_redis_pool(redis_pool)
|
102
|
-
end
|
106
|
+
::Sidekiq::RedisConnection.create(redis)
|
103
107
|
end
|
108
|
+
verify_redis_pool(redis_pool)
|
109
|
+
redis_pool
|
104
110
|
end
|
105
111
|
|
106
112
|
def logger
|
data/lib/sqeduler/version.rb
CHANGED
data/spec/service_spec.rb
CHANGED
@@ -6,6 +6,12 @@ RSpec.describe Sqeduler::Service do
|
|
6
6
|
Logger.new(STDOUT).tap { |l| l.level = Logger::DEBUG }
|
7
7
|
end
|
8
8
|
|
9
|
+
before do
|
10
|
+
described_class.instance_variables.each do |ivar|
|
11
|
+
described_class.remove_instance_variable(ivar)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
9
15
|
describe ".start" do
|
10
16
|
subject { described_class.start }
|
11
17
|
|
@@ -106,6 +112,32 @@ RSpec.describe Sqeduler::Service do
|
|
106
112
|
end
|
107
113
|
end
|
108
114
|
|
115
|
+
context "with pool provided in config" do
|
116
|
+
let(:original_pool) do
|
117
|
+
ConnectionPool.new(:size => 10, :timeout => 0.1) do
|
118
|
+
Redis::Namespace.new("sqeduler", :client => Redis.new(REDIS_CONFIG))
|
119
|
+
end
|
120
|
+
end
|
121
|
+
|
122
|
+
before do
|
123
|
+
described_class.config = Sqeduler::Config.new.tap do |config|
|
124
|
+
config.redis_pool = original_pool
|
125
|
+
config.logger = logger
|
126
|
+
end
|
127
|
+
end
|
128
|
+
|
129
|
+
it "doesn't create a connection pool" do
|
130
|
+
expect(subject.object_id).to eq(original_pool.object_id)
|
131
|
+
end
|
132
|
+
|
133
|
+
it "checks redis version" do
|
134
|
+
allow_any_instance_of(Redis).to receive(:info).and_return(
|
135
|
+
"redis_version" => "2.6.11"
|
136
|
+
)
|
137
|
+
expect { subject }.to raise_error
|
138
|
+
end
|
139
|
+
end
|
140
|
+
|
109
141
|
it "creates a connection pool" do
|
110
142
|
expect(subject).to be_kind_of(ConnectionPool)
|
111
143
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sqeduler
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jared Jenkins
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-03-
|
11
|
+
date: 2016-03-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sidekiq
|