方法
- A
- N
- P
- R
- S
- W
类公共方法
new(number, url) 链接
来源: 显示 | 在 GitHub 上
# File activesupport/lib/active_support/testing/parallelization/worker.rb, line 7 def initialize(number, url) @id = SecureRandom.uuid @number = number @url = url @setup_exception = nil end
实例公共方法
after_fork() 链接
来源: 显示 | 在 GitHub 上
# File activesupport/lib/active_support/testing/parallelization/worker.rb, line 80 def after_fork Parallelization.after_fork_hooks.each do |cb| cb.call(@number) end end
perform_job(job) 链接
来源: 显示 | 在 GitHub 上
# File activesupport/lib/active_support/testing/parallelization/worker.rb, line 42 def perform_job(job) klass = job[0] method = job[1] reporter = job[2] set_process_title("#{klass}##{method}") result = klass.with_info_handler reporter do Minitest.run_one_method(klass, method) end safe_record(reporter, result) end
run_cleanup() 链接
来源: 显示 | 在 GitHub 上
# File activesupport/lib/active_support/testing/parallelization/worker.rb, line 86 def run_cleanup Parallelization.run_cleanup_hooks.each do |cb| cb.call(@number) end end
safe_record(reporter, result) 链接
来源: 显示 | 在 GitHub 上
# File activesupport/lib/active_support/testing/parallelization/worker.rb, line 56 def safe_record(reporter, result) add_setup_exception(result) if @setup_exception begin @queue.record(reporter, result) rescue DRb::DRbConnError result.failures.map! do |failure| if failure.respond_to?(:error) # minitest >5.14.0 error = DRb::DRbRemoteError.new(failure.error) else error = DRb::DRbRemoteError.new(failure.exception) end Minitest::UnexpectedError.new(error) end @queue.record(reporter, result) rescue Interrupt @queue.interrupt raise end set_process_title("(idle)") end
start() 链接
来源: 显示 | 在 GitHub 上
# File activesupport/lib/active_support/testing/parallelization/worker.rb, line 14 def start fork do set_process_title("(starting)") DRb.stop_service @queue = DRbObject.new_with_uri(@url) @queue.start_worker(@id) begin after_fork rescue => @setup_exception; end work_from_queue ensure set_process_title("(stopping)") run_cleanup @queue.stop_worker(@id) end end
work_from_queue() 链接
来源: 显示 | 在 GitHub 上
# File activesupport/lib/active_support/testing/parallelization/worker.rb, line 36 def work_from_queue while job = @queue.pop perform_job(job) end end