tes-request 0.4 → 0.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3d0275c362a3e421084ffed8f81836519569ca20
4
- data.tar.gz: 4c0361fb7ce849ee3bab2980e0530fd50ea1025e
3
+ metadata.gz: e774934b2a6f8f2ab03e09decaa0dd67c673593d
4
+ data.tar.gz: 3962eafc89f185fa6934dcf17aa9d3c38ea8ce01
5
5
  SHA512:
6
- metadata.gz: ae5cce1cfdac34fa69937fdc6b7e4af2580593173b83e34bc92b7ca05b85e223824d7368e52d5508440c9a959c9cba0193a5e3cbb0ffe8c715602dc20360bd39
7
- data.tar.gz: 156bc1b8568c7c7bd76ba4daee49256142309b17da9104e181a527337f61477cc8d9713d46d5190e880c534523ce081b6be42e9d9a2caf1bef00d2447cfdd0ce
6
+ metadata.gz: de707683b0a3ec460a29c8760ae0c8dbfbf3bb0c08e6a9f2cfdde62382f1c7889aae31bcf2a36471c48d701e9b351f4828844962b34d47d6e60562d432b2a082
7
+ data.tar.gz: 780778bc28e7573fa19534b9b4354dc3b2254275d9fcc90ce376e99080e74cd7013d969b9d4ed118f2d76772c69c85cae7d3f5090f133dcb1d2e6750fc01c58a
@@ -71,18 +71,20 @@ module Tes
71
71
  # @param [Fixnum] minimum_pieces
72
72
  # @return [Array]
73
73
  def gen_pieces(profiles, minimum_pieces)
74
- ret = []
74
+ common_jobs = []
75
+ standalone_jobs = []
76
+
75
77
  min_spec_count = profiles.size / minimum_pieces
76
78
 
77
79
  profiles.each do |to_merge_spec|
78
80
  # 0. 任务发布要求的特殊处理
79
81
  if to_merge_spec[:distribute] && to_merge_spec[:distribute][:standalone]
80
- ret << {profile: to_merge_spec[:profile], specs: [to_merge_spec]}
82
+ standalone_jobs << {profile: to_merge_spec[:profile], specs: [to_merge_spec]}
81
83
  next
82
84
  end
83
85
 
84
86
  # 1. 优先相同要求的归并
85
- join_piece = ret.find do |piece|
87
+ join_piece = common_jobs.find do |piece|
86
88
  piece[:specs].size <= min_spec_count and
87
89
  piece[:profile] == to_merge_spec[:profile]
88
90
  end
@@ -91,7 +93,7 @@ module Tes
91
93
  join_piece[:specs] << to_merge_spec
92
94
  else
93
95
  # 2. 然后再是资源多少不同的归并
94
- super_piece = ret.find do |piece|
96
+ super_piece = common_jobs.find do |piece|
95
97
  if piece[:specs].size <= min_spec_count
96
98
  cr = piece[:profile] <=> to_merge_spec[:profile]
97
99
  cr && cr >= 0
@@ -104,8 +106,8 @@ module Tes
104
106
  super_piece[:specs] << to_merge_spec
105
107
  else
106
108
  # 3. 可整合计算的的归并,但要求已经达到的任务分片数已经达到了要求那么大,否则直接以新建来搞
107
- if ret.size >= minimum_pieces
108
- merge_piece = ret.find do |piece|
109
+ if common_jobs.size >= minimum_pieces
110
+ merge_piece = common_jobs.find do |piece|
109
111
  piece[:specs].size <= min_spec_count and
110
112
  piece[:profile].merge_able?(to_merge_spec[:profile])
111
113
  end
@@ -117,15 +119,15 @@ module Tes
117
119
  else
118
120
  # 4. 最后再尝试独立出一个新的piece,在剩余数量达到一半要求的时候
119
121
  # puts 'http://new'
120
- ret << {profile: to_merge_spec[:profile], specs: [to_merge_spec]}
122
+ common_jobs << {profile: to_merge_spec[:profile], specs: [to_merge_spec]}
121
123
  end
122
124
  else
123
- ret << {profile: to_merge_spec[:profile], specs: [to_merge_spec]}
125
+ common_jobs << {profile: to_merge_spec[:profile], specs: [to_merge_spec]}
124
126
  end
125
127
  end
126
128
  end
127
129
  end
128
- ret
130
+ standalone_jobs + common_jobs
129
131
  end
130
132
 
131
133
 
@@ -1,5 +1,5 @@
1
1
  module Tes
2
2
  module Request
3
- VERSION = '0.4'
3
+ VERSION = '0.5'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tes-request
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.4'
4
+ version: '0.5'
5
5
  platform: ruby
6
6
  authors:
7
7
  - wuhuizuo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-06-24 00:00:00.000000000 Z
11
+ date: 2017-06-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: java-properties