sidekiq-tip 0.0.2 → 0.0.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 +4 -4
- data/.travis.yml +8 -0
- data/Gemfile +3 -0
- data/README.md +2 -0
- data/lib/sidekiq/tip/server/middleware.rb +12 -4
- data/lib/sidekiq/tip/version.rb +1 -1
- data/test/lib/middleware_test.rb +22 -2
- data/test/test_helper.rb +8 -8
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fc90706a7ecf0f554b92712bf300101323b7e2c4
|
4
|
+
data.tar.gz: ce89342595d8da9754d2a4ad6231c83f9c7ae7a4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 50678c8055977b8b6a52e513f1eb96d1918a12c1742175342b6352fb0416ab35e99b51ae6214381e522dc7a780178f34f754010967de140f1c5c88cbc37fca09
|
7
|
+
data.tar.gz: 722325ada980b33a69050756d539ae80f3ae2feb06246015cc5e4b823242ff76343ec01c1047b9326f2e4d254ebe94e5bb1a031a43d85665fe6090282486ee2e
|
data/.travis.yml
ADDED
data/Gemfile
CHANGED
@@ -4,8 +4,11 @@ source 'https://rubygems.org'
|
|
4
4
|
gemspec
|
5
5
|
|
6
6
|
group :developmnt, :test do
|
7
|
+
gem 'simplecov'
|
8
|
+
gem 'coveralls', require: false
|
7
9
|
gem 'pry'
|
8
10
|
gem 'sidekiq', git: 'https://github.com/mperham/sidekiq.git'
|
11
|
+
gem 'celluloid'
|
9
12
|
gem 'minitest'
|
10
13
|
gem 'wrong'
|
11
14
|
gem 'mocha'
|
data/README.md
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
# Sidekiq::Tip
|
2
2
|
|
3
|
+
[](https://travis-ci.org/zzet/sidekiq-tip) [](https://coveralls.io/github/zzet/sidekiq-tip?branch=master)
|
4
|
+
|
3
5
|
Perform sidekiq jobs in time interval
|
4
6
|
|
5
7
|
## Installation
|
@@ -13,11 +13,19 @@ module Sidekiq
|
|
13
13
|
if appropriate_time_interval?
|
14
14
|
yield
|
15
15
|
else
|
16
|
-
|
16
|
+
reenqueue(msg, queue)
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
20
|
-
|
20
|
+
private
|
21
|
+
|
22
|
+
def reenqueue(msg, queue)
|
23
|
+
payload = Sidekiq.dump_json(msg)
|
24
|
+
|
25
|
+
Sidekiq.redis do |conn|
|
26
|
+
conn.zadd(queue, next_start_time.to_f.to_s, payload)
|
27
|
+
end
|
28
|
+
end
|
21
29
|
|
22
30
|
def fetch_times(msg)
|
23
31
|
@start_at = msg.fetch('start_at', @start_at)
|
@@ -42,8 +50,8 @@ module Sidekiq
|
|
42
50
|
Time.now.utc
|
43
51
|
end
|
44
52
|
|
45
|
-
def
|
46
|
-
|
53
|
+
def next_start_time
|
54
|
+
start_time + 86400
|
47
55
|
end
|
48
56
|
end
|
49
57
|
end
|
data/lib/sidekiq/tip/version.rb
CHANGED
data/test/lib/middleware_test.rb
CHANGED
@@ -2,6 +2,16 @@ require 'test_helper'
|
|
2
2
|
require 'pry'
|
3
3
|
|
4
4
|
class MiddlawareTest < Minitest::Test
|
5
|
+
def setup
|
6
|
+
redis = MockRedis.new
|
7
|
+
client = Object.new
|
8
|
+
|
9
|
+
redis.stubs(:client).returns(client)
|
10
|
+
client.stubs(:location).returns('MockRedis')
|
11
|
+
|
12
|
+
Sidekiq::RedisConnection.stubs(:create).returns(ConnectionPool.new({}) { redis })
|
13
|
+
end
|
14
|
+
|
5
15
|
def test_job_in_interval
|
6
16
|
t = Time.utc(2008, 9, 1, 1, 0, 0)
|
7
17
|
Timecop.travel(t)
|
@@ -22,8 +32,18 @@ class MiddlawareTest < Minitest::Test
|
|
22
32
|
assert { SomeIvarJob.jobs.size == 0 }
|
23
33
|
SomeIvarJob.perform_async
|
24
34
|
assert { SomeIvarJob.jobs.size == 1 }
|
25
|
-
|
26
|
-
|
35
|
+
jobs = []
|
36
|
+
while job = SomeIvarJob.jobs.shift do
|
37
|
+
jobs << job
|
38
|
+
end
|
39
|
+
while job = jobs.shift do
|
40
|
+
SomeIvarJob.process_job(job)
|
41
|
+
end
|
42
|
+
ej = 0
|
43
|
+
Sidekiq.redis do |conn|
|
44
|
+
ej += conn.zrange("default", 0, -1).size
|
45
|
+
end
|
46
|
+
assert { ej == 1 }
|
27
47
|
|
28
48
|
Timecop.return
|
29
49
|
end
|
data/test/test_helper.rb
CHANGED
@@ -1,28 +1,28 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
require 'simplecov'
|
2
|
+
SimpleCov.start
|
3
3
|
|
4
|
-
|
5
|
-
|
4
|
+
require 'coveralls'
|
5
|
+
Coveralls.wear!
|
6
6
|
|
7
7
|
require 'minitest/autorun'
|
8
8
|
require 'minitest/pride'
|
9
9
|
require 'minitest/autorun'
|
10
10
|
require 'timecop'
|
11
11
|
require 'wrong'
|
12
|
+
require 'mocha/setup'
|
13
|
+
require 'mock_redis'
|
12
14
|
|
15
|
+
require 'sidekiq'
|
13
16
|
require 'celluloid/current'
|
14
17
|
require 'celluloid/test'
|
15
18
|
Celluloid.boot
|
16
19
|
|
17
|
-
require 'sidekiq'
|
18
20
|
require 'sidekiq/cli'
|
19
21
|
require 'sidekiq/processor'
|
20
22
|
require 'sidekiq/util'
|
21
23
|
|
22
|
-
require 'sidekiq/testing'
|
23
|
-
Sidekiq::Testing.fake!
|
24
|
-
|
25
24
|
require 'sidekiq/tip'
|
25
|
+
require 'sidekiq/testing'
|
26
26
|
|
27
27
|
Sidekiq::Testing.server_middleware do |chain|
|
28
28
|
chain.add Sidekiq::Tip::Server::Middleware
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sidekiq-tip
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Kumanyaev
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-10-
|
11
|
+
date: 2015-10-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -47,6 +47,7 @@ extensions: []
|
|
47
47
|
extra_rdoc_files: []
|
48
48
|
files:
|
49
49
|
- .gitignore
|
50
|
+
- .travis.yml
|
50
51
|
- Gemfile
|
51
52
|
- LICENSE.txt
|
52
53
|
- README.md
|