fairway 0.3.2 → 0.3.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- ODBhZmUyMTQyYmZkMTk0ZmJkNGM3ZmQ4ZjdkZWUzNzc5MjRlMTE3Nw==
4
+ ZTYxMDc5ZDNmZWM4YmViYmExMzZlZTEyYTJhMmQ5ZTZkYzA5MGM2OQ==
5
5
  data.tar.gz: !binary |-
6
- MzcxMWQxYjFkMzVhYTY4M2Y1M2M0YjRlY2NlZGU0YzVjYjIwZjFmNA==
6
+ ZjZhOTMyYTI0OTgzOTU3OTlmMTFhZDkyNzU4Y2U0NjVmOGQ4Yjc4NQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- NGE4NmM1Yzk5NGE2NzYxNTdiNjIxYzQzZDU3ZjZiZmVjNjNkYjZmNTNjNDUz
10
- Y2IwNmViOTgxNmU5NjAzM2U2OTE2MWJmNTk1YTEyYWVmZWEyMDFlZmI2NDgy
11
- NDE5OTJiNDk1YTY5YTRlMDNiODFmNWU2YTQ3ODZiZjE3MjA0YWU=
9
+ YmNlOTE3ODUzNmVmYWIwM2QwODUzN2NlMzM1NjAxMGQxMDk2ODY2NWE2Nzg5
10
+ ZjUyNTcwNzI5NmQxNjgxNzI5MDhjMDVhZDUxNDE3ODFiODZhZGFmZmRkNzYw
11
+ Njg0YjU3MjI5MDIxZTg4M2I4ZGE5ZGU5MmMwNWU0MGQyMmM4YzU=
12
12
  data.tar.gz: !binary |-
13
- MDEwZDIwMzI0YzQ4Yzc0NDU2NWRkNzMxOGM5ZjkxMjMwY2I5NGFiYmU2NTE0
14
- NjA1YTAxMmNmZjNmNjEzNWJmZWFlMjBkNzljZmVjZDZkYmY4YTQwODFiMWMy
15
- NDFjZjA1OTNhZTc0MWM5YmVmZjU0MzMxMjRkMGEzNmE0MzRjNWQ=
13
+ NzhjMGQwMjg0YzIzYzcxMzJmODhkYTJkYmFkZmM0ZWM2NmQzN2ZmZmQxOWQw
14
+ NGE2YTJhNjJiMjg0NGZiOWE4MjhiYTdjNmZjZDYxZTY0YzljOWY1M2NiNTc2
15
+ NGM0ODQxNGJkNmM4YmVkYzFiMDNlNWM1ZmRjM2Y3NjM5ZDBkOTU=
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- fairway (0.3.1)
4
+ fairway (0.3.3)
5
5
  activesupport
6
6
  connection_pool
7
7
  redis
data/go/fairway_ack.go CHANGED
@@ -17,18 +17,19 @@ local round_robin = k(queue, 'facet_queue');
17
17
  local facet_pool = k(queue, 'facet_pool');
18
18
  local inflight = k(queue, 'inflight');
19
19
  local messages = k(queue, facet);
20
- local inflight_total = k(queue, facet .. ':inflight');
20
+ local inflight_facet = k(queue, facet .. ':inflight');
21
21
  local inflight_limit = k(queue, 'limit');
22
22
  local priorities = k(queue, 'priorities');
23
23
 
24
- local removed = tonumber(redis.call('zrem', inflight, message))
24
+ local removed = tonumber(redis.call('zrem', inflight, message));
25
+ redis.call('srem', inflight_facet, message);
25
26
 
26
27
  if removed > 0 then
27
28
  -- Manage facet queue and active facets
28
29
  local current = tonumber(redis.call('hget', facet_pool, facet)) or 0;
29
30
  local priority = tonumber(redis.call('hget', priorities, facet)) or 1;
30
31
  local length = redis.call('llen', messages);
31
- local inflight_cur = tonumber(redis.call('decr', inflight_total)) or 0;
32
+ local inflight_cur = tonumber(redis.call('scard', inflight_facet)) or 0;
32
33
  local inflight_max = tonumber(redis.call('get', inflight_limit)) or 0;
33
34
 
34
35
  local n = 0
@@ -50,7 +51,7 @@ if removed > 0 then
50
51
  end
51
52
 
52
53
  if (length == 0 and inflight_cur == 0 and n == 0) then
53
- redis.call('del', inflight_total);
54
+ redis.call('del', inflight_facet);
54
55
  redis.call('hdel', facet_pool, facet);
55
56
  redis.call('srem', active_facets, facet);
56
57
  end
@@ -27,8 +27,8 @@ for i = 1, #registered_queues, 2 do
27
27
  local active_facets = k(queue, 'active_facets');
28
28
  local round_robin = k(queue, 'facet_queue');
29
29
  local facet_pool = k(queue, 'facet_pool');
30
- local inflight_total = k(queue, facet .. ':inflight');
31
- local inflight_limit = k(queue, 'limit');
30
+ -- local inflight_facet = k(queue, facet .. ':inflight');
31
+ -- local inflight_limit = k(queue, 'limit');
32
32
 
33
33
  -- Delivering the message to a queue is as simple as
34
34
  -- pushing it onto the facet's message list, and
@@ -39,18 +39,18 @@ for i = 1, #registered_queues, 2 do
39
39
  -- Manage facet queue and active facets
40
40
  local current = tonumber(redis.call('hget', facet_pool, facet)) or 0;
41
41
  local priority = tonumber(redis.call('hget', priorities, facet)) or 1;
42
- local inflight_cur = tonumber(redis.call('get', inflight_total)) or 0;
43
- local inflight_max = tonumber(redis.call('get', inflight_limit)) or 0;
42
+ -- local inflight_cur = tonumber(redis.call('scard', inflight_facet)) or 0;
43
+ -- local inflight_max = tonumber(redis.call('get', inflight_limit)) or 0;
44
44
 
45
45
  local n = 0
46
46
 
47
47
  -- redis.log(redis.LOG_WARNING, current.."/"..length.."/"..priority.."/"..inflight_max.."/"..inflight_cur);
48
48
 
49
- if inflight_max > 0 then
50
- n = math.min(length, priority, inflight_max - inflight_cur);
51
- else
49
+ -- if inflight_max > 0 then
50
+ -- n = math.min(length, priority, inflight_max - inflight_cur);
51
+ -- else
52
52
  n = math.min(length, priority);
53
- end
53
+ -- end
54
54
 
55
55
  -- redis.log(redis.LOG_WARNING, "PUSH: "..current.."/"..n);
56
56
 
data/go/fairway_pull.go CHANGED
@@ -25,14 +25,14 @@ local pull = function (queue)
25
25
  -- has at least one message available to be pulled
26
26
  -- from it's message queue.
27
27
  local messages = k(queue, facet);
28
- local inflight_total = k(queue, facet .. ':inflight');
28
+ local inflight_facet = k(queue, facet .. ':inflight');
29
29
 
30
30
  message = redis.call('rpop', messages);
31
31
 
32
32
  if message then
33
33
  if wait ~= -1 then
34
34
  redis.call('zadd', inflight, timestamp + wait, message);
35
- redis.call('incr', inflight_total);
35
+ redis.call('sadd', inflight_facet, message);
36
36
  end
37
37
 
38
38
  redis.call('decr', k(queue, 'length'));
@@ -49,12 +49,12 @@ local manage = function (queue, facet)
49
49
  local priorities = k(queue, 'priorities');
50
50
  local facet_pool = k(queue, 'facet_pool');
51
51
  local messages = k(queue, facet);
52
- local inflight_total = k(queue, facet .. ':inflight');
52
+ local inflight_facet = k(queue, facet .. ':inflight');
53
53
 
54
54
  local current = tonumber(redis.call('hget', facet_pool, facet)) or 0;
55
55
  local priority = tonumber(redis.call('hget', priorities, facet)) or 1;
56
56
  local length = redis.call('llen', messages);
57
- local inflight_cur = tonumber(redis.call('get', inflight_total)) or 0;
57
+ local inflight_cur = tonumber(redis.call('scard', inflight_facet)) or 0;
58
58
  local inflight_max = tonumber(redis.call('get', inflight_limit)) or 0;
59
59
 
60
60
  local n = 0
@@ -83,7 +83,7 @@ local manage = function (queue, facet)
83
83
  end
84
84
 
85
85
  if (length == 0 and inflight_cur == 0 and n == 0) then
86
- redis.call('del', inflight_total);
86
+ redis.call('del', inflight_facet);
87
87
  redis.call('hdel', facet_pool, facet);
88
88
  redis.call('srem', active_facets, facet);
89
89
  end
data/go/queue_test.go CHANGED
@@ -244,16 +244,16 @@ func QueueSpec(c gospec.Context) {
244
244
  _, message := queue.Pull(2)
245
245
  c.Expect(message.json(), Equals, msg1.json())
246
246
 
247
- count, _ := redis.Int(r.Do("get", "fairway:myqueue:1:inflight"))
247
+ count, _ := redis.Int(r.Do("scard", "fairway:myqueue:1:inflight"))
248
248
  c.Expect(count, Equals, 1)
249
249
 
250
250
  _, message = queue.Pull(2)
251
251
  c.Expect(message.json(), Equals, msg3.json())
252
252
 
253
- count, _ = redis.Int(r.Do("get", "fairway:myqueue:1:inflight"))
253
+ count, _ = redis.Int(r.Do("scard", "fairway:myqueue:1:inflight"))
254
254
  c.Expect(count, Equals, 1)
255
255
 
256
- count, _ = redis.Int(r.Do("get", "fairway:myqueue:2:inflight"))
256
+ count, _ = redis.Int(r.Do("scard", "fairway:myqueue:2:inflight"))
257
257
  c.Expect(count, Equals, 1)
258
258
 
259
259
  _, message = queue.Pull(2)
@@ -261,10 +261,10 @@ func QueueSpec(c gospec.Context) {
261
261
  _, message = queue.Pull(2)
262
262
  c.Expect(message, IsNil)
263
263
 
264
- count, _ = redis.Int(r.Do("get", "fairway:myqueue:1:inflight"))
264
+ count, _ = redis.Int(r.Do("scard", "fairway:myqueue:1:inflight"))
265
265
  c.Expect(count, Equals, 1)
266
266
 
267
- count, _ = redis.Int(r.Do("get", "fairway:myqueue:2:inflight"))
267
+ count, _ = redis.Int(r.Do("scard", "fairway:myqueue:2:inflight"))
268
268
  c.Expect(count, Equals, 1)
269
269
 
270
270
  queue.Ack(msg1)
@@ -273,20 +273,20 @@ func QueueSpec(c gospec.Context) {
273
273
  queue.Ack(msg1)
274
274
  queue.Ack(msg1)
275
275
 
276
- count, err := redis.Int(r.Do("get", "fairway:myqueue:1:inflight"))
276
+ count, err := redis.Int(r.Do("scard", "fairway:myqueue:1:inflight"))
277
277
  c.Expect(count, Equals, 0)
278
278
  c.Expect(err, IsNil)
279
279
 
280
- count, _ = redis.Int(r.Do("get", "fairway:myqueue:2:inflight"))
280
+ count, _ = redis.Int(r.Do("scard", "fairway:myqueue:2:inflight"))
281
281
  c.Expect(count, Equals, 1)
282
282
 
283
283
  _, message = queue.Pull(2)
284
284
  c.Expect(message.json(), Equals, msg2.json())
285
285
 
286
- count, _ = redis.Int(r.Do("get", "fairway:myqueue:1:inflight"))
286
+ count, _ = redis.Int(r.Do("scard", "fairway:myqueue:1:inflight"))
287
287
  c.Expect(count, Equals, 1)
288
288
 
289
- count, _ = redis.Int(r.Do("get", "fairway:myqueue:2:inflight"))
289
+ count, _ = redis.Int(r.Do("scard", "fairway:myqueue:2:inflight"))
290
290
  c.Expect(count, Equals, 1)
291
291
  })
292
292
 
@@ -1,3 +1,3 @@
1
1
  module Fairway
2
- VERSION = "0.3.2"
2
+ VERSION = "0.3.4"
3
3
  end
@@ -23,8 +23,8 @@ for i = 1, #registered_queues, 2 do
23
23
  local active_facets = k(queue, 'active_facets');
24
24
  local round_robin = k(queue, 'facet_queue');
25
25
  local facet_pool = k(queue, 'facet_pool');
26
- local inflight_total = k(queue, facet .. ':inflight');
27
- local inflight_limit = k(queue, 'limit');
26
+ -- local inflight_facet = k(queue, facet .. ':inflight');
27
+ -- local inflight_limit = k(queue, 'limit');
28
28
 
29
29
  -- Delivering the message to a queue is as simple as
30
30
  -- pushing it onto the facet's message list, and
@@ -35,18 +35,18 @@ for i = 1, #registered_queues, 2 do
35
35
  -- Manage facet queue and active facets
36
36
  local current = tonumber(redis.call('hget', facet_pool, facet)) or 0;
37
37
  local priority = tonumber(redis.call('hget', priorities, facet)) or 1;
38
- local inflight_cur = tonumber(redis.call('get', inflight_total)) or 0;
39
- local inflight_max = tonumber(redis.call('get', inflight_limit)) or 0;
38
+ -- local inflight_cur = tonumber(redis.call('scard', inflight_facet)) or 0;
39
+ -- local inflight_max = tonumber(redis.call('get', inflight_limit)) or 0;
40
40
 
41
41
  local n = 0
42
42
 
43
43
  -- redis.log(redis.LOG_WARNING, current.."/"..length.."/"..priority.."/"..inflight_max.."/"..inflight_cur);
44
44
 
45
- if inflight_max > 0 then
46
- n = math.min(length, priority, inflight_max - inflight_cur);
47
- else
45
+ -- if inflight_max > 0 then
46
+ -- n = math.min(length, priority, inflight_max - inflight_cur);
47
+ -- else
48
48
  n = math.min(length, priority);
49
- end
49
+ -- end
50
50
 
51
51
  -- redis.log(redis.LOG_WARNING, "PUSH: "..current.."/"..n);
52
52
 
@@ -21,14 +21,14 @@ local pull = function (queue)
21
21
  -- has at least one message available to be pulled
22
22
  -- from it's message queue.
23
23
  local messages = k(queue, facet);
24
- local inflight_total = k(queue, facet .. ':inflight');
24
+ local inflight_facet = k(queue, facet .. ':inflight');
25
25
 
26
26
  message = redis.call('rpop', messages);
27
27
 
28
28
  if message then
29
29
  if wait ~= -1 then
30
30
  redis.call('zadd', inflight, timestamp + wait, message);
31
- redis.call('incr', inflight_total);
31
+ redis.call('sadd', inflight_facet, message);
32
32
  end
33
33
 
34
34
  redis.call('decr', k(queue, 'length'));
@@ -45,12 +45,12 @@ local manage = function (queue, facet)
45
45
  local priorities = k(queue, 'priorities');
46
46
  local facet_pool = k(queue, 'facet_pool');
47
47
  local messages = k(queue, facet);
48
- local inflight_total = k(queue, facet .. ':inflight');
48
+ local inflight_facet = k(queue, facet .. ':inflight');
49
49
 
50
50
  local current = tonumber(redis.call('hget', facet_pool, facet)) or 0;
51
51
  local priority = tonumber(redis.call('hget', priorities, facet)) or 1;
52
52
  local length = redis.call('llen', messages);
53
- local inflight_cur = tonumber(redis.call('get', inflight_total)) or 0;
53
+ local inflight_cur = tonumber(redis.call('scard', inflight_facet)) or 0;
54
54
  local inflight_max = tonumber(redis.call('get', inflight_limit)) or 0;
55
55
 
56
56
  local n = 0
@@ -79,7 +79,7 @@ local manage = function (queue, facet)
79
79
  end
80
80
 
81
81
  if (length == 0 and inflight_cur == 0 and n == 0) then
82
- redis.call('del', inflight_total);
82
+ redis.call('del', inflight_facet);
83
83
  redis.call('hdel', facet_pool, facet);
84
84
  redis.call('srem', active_facets, facet);
85
85
  end
@@ -130,4 +130,3 @@ for i, queue in ipairs(ARGV) do
130
130
  return {queue, message};
131
131
  end
132
132
  end
133
-
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fairway
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.3.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Allison
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-02-17 00:00:00.000000000 Z
11
+ date: 2016-02-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport