Skip to content

Commit eede22e

Browse files
committed
cache global_timings in worker
... they are used in a few places during scheduling.
1 parent 5abbdc2 commit eede22e

1 file changed

Lines changed: 7 additions & 4 deletions

File tree

lib/rspecq/worker.rb

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,10 @@ def update_heartbeat
165165
end
166166
end
167167

168+
def global_timings
169+
@global_timings ||= queue.timings
170+
end
171+
168172
def try_publish_queue!(queue)
169173
return if !queue.become_master
170174

@@ -184,8 +188,7 @@ def try_publish_queue!(queue)
184188
RSpec.configuration.files_or_directories_to_run = files_or_dirs_to_run
185189
files_to_run = RSpec.configuration.files_to_run.map { |j| relative_path(j) }
186190

187-
timings = queue.timings
188-
if timings.empty?
191+
if global_timings.empty?
189192
q_size = queue.push_jobs(files_to_run.shuffle, fail_fast)
190193
log_event(
191194
"No timings found! Published queue in random order (size=#{q_size})",
@@ -198,7 +201,7 @@ def try_publish_queue!(queue)
198201
slow_files = []
199202

200203
if file_split_threshold
201-
slow_files = timings.take_while do |_job, duration|
204+
slow_files = global_timings.take_while do |_job, duration|
202205
duration >= file_split_threshold
203206
end.map(&:first) & files_to_run
204207
end
@@ -229,7 +232,7 @@ def try_publish_queue!(queue)
229232
private
230233

231234
def order_jobs_by_timings(jobs)
232-
timings = queue.timings
235+
timings = global_timings
233236

234237
default_timing = timings.values[timings.values.size / 2]
235238

0 commit comments

Comments
 (0)