zuora_connect 1.7.32 → 1.7.33

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 72754905411ed30ecc22d4d789857dcc8a026734
4
- data.tar.gz: c540b406fa0cf51493ce0b03c05a16fe98c33a8c
3
+ metadata.gz: 2f654b5c863ebf96eb976039e87ffb65a17308e0
4
+ data.tar.gz: fa630ad385d7876d468aaa63695829f77e10e61d
5
5
  SHA512:
6
- metadata.gz: 381257814cad9cb462615727b024d18c621e9bb9860ec619bef74df43e6e46c544126c49dfe7f331324c3fd3fa3d2e60f3b9d99c2ecf3dddf6c46cffed3db8da
7
- data.tar.gz: 9c168032cdfa5aa65d62f62ede2b6011a3a74c2b2568c8eaa7feeaf783bb0745a05b71b30f57ffb321f21a6f7253b8875067d1b6f01e4a7f64c8b2caf02c1793
6
+ metadata.gz: abb8e9351ec64a2ee3ef7ba8c3e6cb28d08a345594eac30ab6f3941d23f19bc77a771f7471120e468f36872596f3e98ef7407af633b3d2fe383a869540b2f0f3
7
+ data.tar.gz: 2bcf6376f63b0fa8fcf4592ab1c3204dfefd60b0b219d27bac2a2411b11bec30f2a8ad7999c227f78d1826fa74e0960c81d3f4c40fecae6eba3535419968b156
@@ -23,6 +23,18 @@ module Resque
23
23
  busy_queues.select {|q| q == queuename }.size
24
24
  end
25
25
 
26
+ def get_categorized_queues(queues)
27
+ priority_map = {"Synchronous" => 0, "High" => 1, "Medium" => 2, "Low" => 3}
28
+ categorized_queues = {}
29
+ for queue in queues.uniq
30
+ priority = queue.split("_")[1]
31
+ priority = "Medium" if !["Synchronous", "High", "Medium", "Low"].include?(priority)
32
+ categorized_queues[priority] ||= []
33
+ categorized_queues[priority].push(queue)
34
+ end
35
+ return categorized_queues.transform_keys{ |key| priority_map[key.to_s]}
36
+ end
37
+
26
38
  DEFAULT_QUEUE_DEPTH = 0
27
39
  def should_work_on_queue? queuename
28
40
  return true if @queues.include? '*' # workers with QUEUES=* are special and are not subject to queue depth setting
@@ -37,6 +49,10 @@ module Resque
37
49
  false
38
50
  end
39
51
 
52
+ def get_grouped_queues(queues)
53
+ queues.sort.group_by{|u| /(\d{1,20})_.*/.match(u) ? /(\d{1,20})_.*/.match(u).captures.first : nil}
54
+ end
55
+
40
56
  def reserve_with_round_robin
41
57
  grouped_queues = queues.sort.group_by{|u| /(\d{1,20})_.*/.match(u) ? /(\d{1,20})_.*/.match(u).captures.first : nil}
42
58
 
@@ -45,13 +61,15 @@ module Resque
45
61
  @n ||= 0
46
62
  @n += 1
47
63
  @n = @n % grouped_queues.keys.size
48
-
49
64
  grouped_queues.keys.rotate(@n).each do |key|
50
- grouped_queues[key].each do |queue|
51
- log! "Checking #{queue}"
52
- if should_work_on_queue?(queue) && @job_in_progress = Resque::Job.reserve(queue)
53
- log! "Found job on #{queue}"
54
- return @job_in_progress
65
+ categorized_queues = get_categorized_queues(grouped_queues[key])
66
+ for key in categorized_queues.keys.sort
67
+ categorized_queues[key].each do |queue|
68
+ log! "Checking #{queue}"
69
+ if should_work_on_queue?(queue) && @job_in_progress = Resque::Job.reserve(queue)
70
+ log! "Found job on #{queue}"
71
+ return @job_in_progress
72
+ end
55
73
  end
56
74
  end
57
75
  @n += 1 # Start the next search at the queue after the one from which we pick a job.
@@ -1,3 +1,3 @@
1
1
  module ZuoraConnect
2
- VERSION = "1.7.32"
2
+ VERSION = "1.7.33"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zuora_connect
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.32
4
+ version: 1.7.33
5
5
  platform: ruby
6
6
  authors:
7
7
  - Connect Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-12-10 00:00:00.000000000 Z
11
+ date: 2018-12-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: apartment