ci-queue 0.2.0 → 0.3.0
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/lib/ci/queue/redis/worker.rb +20 -2
- data/lib/ci/queue/version.rb +1 -1
- data/lib/minitest/queue.rb +1 -1
- 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: e705f791872606bc69ef5bf0851b3d70d3a7306f
|
4
|
+
data.tar.gz: 6132821be168baecd4e6bc963830f6594cf74d6e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5564b0a1b1e8d0c9c3f8e26a3403a926a0f406e06c8770aa5fefdd9223926d7d76faa200977d818068c23c266ab819491ca3e5b7253500a2a049e5b9af9393fb
|
7
|
+
data.tar.gz: df04b3f6bc3f975ca00253c9eb06c6c77944dc0cf689a0ec3f995a142ba6e88a95fbd5b57227f4e202cc5b4ec6f57527115ee32592b23c568406a102494d4dd1
|
@@ -5,6 +5,11 @@ module CI
|
|
5
5
|
module Redis
|
6
6
|
ReservationError = Class.new(StandardError)
|
7
7
|
|
8
|
+
class << self
|
9
|
+
attr_accessor :requeue_offset
|
10
|
+
end
|
11
|
+
self.requeue_offset = 42
|
12
|
+
|
8
13
|
class Worker < Base
|
9
14
|
attr_reader :total
|
10
15
|
|
@@ -100,11 +105,24 @@ module CI
|
|
100
105
|
true
|
101
106
|
end
|
102
107
|
|
103
|
-
|
108
|
+
REQUEUE = %{
|
109
|
+
local queue_key = KEYS[1]
|
110
|
+
local test = ARGV[1]
|
111
|
+
local offset = ARGV[2]
|
112
|
+
|
113
|
+
local pivot = redis.call('lrange', queue_key, -1 - offset, 0 - offset)[1]
|
114
|
+
if pivot then
|
115
|
+
redis.call('linsert', queue_key, 'BEFORE', pivot, test)
|
116
|
+
else
|
117
|
+
redis.call('lpush', queue_key, test)
|
118
|
+
end
|
119
|
+
}
|
120
|
+
def requeue(test, offset: Redis.requeue_offset)
|
104
121
|
load_script(ACKNOWLEDGE)
|
122
|
+
load_script(REQUEUE)
|
105
123
|
redis.multi do
|
106
124
|
redis.decr(key('processed'))
|
107
|
-
|
125
|
+
eval_script(REQUEUE, keys: [key('queue')], argv: [test, offset])
|
108
126
|
ack(test)
|
109
127
|
end
|
110
128
|
end
|
data/lib/ci/queue/version.rb
CHANGED
data/lib/minitest/queue.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ci-queue
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jean Boussier
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-11-
|
11
|
+
date: 2016-11-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|