balsamique 0.1.0 → 0.1.1
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/balsamique.rb +37 -6
- 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: 875fa74f76e93f583746ce80088297a1d0ee34ac
|
4
|
+
data.tar.gz: 0554405360376134aff714697848c98cb911b959
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 173858d448408ba15351c0bcb908b615a403de5bdacc694e3caa3ff4708213dc6d4e84a23776585f755e8bb2e5036d8691903237d361e92b36a01885e07b6f09
|
7
|
+
data.tar.gz: be3fe7aff6d2fd2589abfc3173b8fe57c94dbda2e7a658a3730d6c84771c16a08d88ba9b4ed9612db3cd0fcf0c1751ae119a8e7e39a08d6cf2a425b0ac29e2b2
|
data/lib/balsamique.rb
CHANGED
@@ -52,8 +52,8 @@ class Balsamique
|
|
52
52
|
end
|
53
53
|
end
|
54
54
|
|
55
|
-
STATS_SLICE =
|
56
|
-
STATS_CHUNK =
|
55
|
+
STATS_SLICE = 60 # seconds
|
56
|
+
STATS_CHUNK = 60 # slices (= 3600 seconds = 1 hr)
|
57
57
|
def self.slice_timestamp(ts)
|
58
58
|
slice = ts.to_i / STATS_SLICE
|
59
59
|
return slice / STATS_CHUNK, slice % STATS_CHUNK
|
@@ -142,7 +142,7 @@ while KEYS[i] do
|
|
142
142
|
redis.call('hset', KEYS[3], KEYS[i] .. ',len,' .. ARGV[3],
|
143
143
|
redis.call('zcard', KEYS[i]))
|
144
144
|
redis.call('hincrby', KEYS[3], KEYS[i] .. ',dq,' .. ARGV[3], 1)
|
145
|
-
redis.call('expire', KEYS[3],
|
145
|
+
redis.call('expire', KEYS[3], 90000)
|
146
146
|
return({ elem[1],
|
147
147
|
redis.call('hget', KEYS[1], elem[1]),
|
148
148
|
redis.call('hget', KEYS[2], elem[1]), retries })
|
@@ -304,6 +304,38 @@ EOF
|
|
304
304
|
result.keys.map { |k| self.class.strip_prefix(k, @que_prefix) }
|
305
305
|
end
|
306
306
|
|
307
|
+
def queues_info
|
308
|
+
qs_info = redis.hgetall(@queues)
|
309
|
+
return {} if qs_info.empty?
|
310
|
+
now = Time.now.to_f
|
311
|
+
details = redis.multi do |r|
|
312
|
+
qs_info.keys.each do |key|
|
313
|
+
r.zrange(key, 0, 0, withscores: true)
|
314
|
+
r.zcount(key, 0, now)
|
315
|
+
r.zcard(key)
|
316
|
+
end
|
317
|
+
end
|
318
|
+
result = {}
|
319
|
+
qs_info.keys.each_with_index do |key, i|
|
320
|
+
i3 = 3 * i
|
321
|
+
queue = self.class.strip_prefix(key, @que_prefix)
|
322
|
+
last_id, last_ts = qs_info[key].split(',')
|
323
|
+
last_ts = last_ts.to_f
|
324
|
+
next_id = next_ts = nil
|
325
|
+
if (next_info = details[i3].first)
|
326
|
+
next_id = next_info.first
|
327
|
+
next_ts = next_info.last
|
328
|
+
end
|
329
|
+
result[queue] = {
|
330
|
+
current_ts: now,
|
331
|
+
last_id: last_id, last_ts: last_ts,
|
332
|
+
total: details[i3 + 2], ready: details[i3 + 1],
|
333
|
+
next_id: next_id, next_ts: next_ts
|
334
|
+
}
|
335
|
+
end
|
336
|
+
result
|
337
|
+
end
|
338
|
+
|
307
339
|
def queue_length(queue)
|
308
340
|
redis.zcard(@que_prefix + queue) || 0
|
309
341
|
end
|
@@ -320,7 +352,7 @@ EOF
|
|
320
352
|
end
|
321
353
|
|
322
354
|
def remove_job(id)
|
323
|
-
status = redis.hget(@status, id)
|
355
|
+
return unless (status = redis.hget(@status, id))
|
324
356
|
queue, timestamps = decode_job_status(status)
|
325
357
|
redis.multi do |r|
|
326
358
|
if queue.start_with?(@que_prefix)
|
@@ -339,8 +371,7 @@ EOF
|
|
339
371
|
r.hdel(@args, id)
|
340
372
|
r.hdel(@tasks, id)
|
341
373
|
end
|
342
|
-
check_status = redis.hget(@status, id)
|
343
|
-
return if check_status.nil?
|
374
|
+
return unless (check_status = redis.hget(@status, id))
|
344
375
|
if check_status == status
|
345
376
|
redis.hdel(@status, id)
|
346
377
|
if (uid = redis.hget(@unique, id))
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: balsamique
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- DWNLD
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-01-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: redis
|