6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
# File 'lib/simple_map_reduce/worker/polling_workers_status_worker.rb', line 6
def perform(workers)
logger.debug("begin polling workers: #{workers.keys}")
workers.each do |id, worker|
response = http_client(worker.url).get("/workers/#{worker.id}")
body = JSON.parse(response.body, symbolize_names: true)[:worker]
worker.aasm.current_state = body[:state].to_sym
rescue => e
logger.error(e.inspect)
logger.error(e&.response&.inspect)
logger.info("Worker #{worker.id} is removed from workers")
workers.delete(id)
end
logger.debug("finish polling workers: #{workers.keys}")
end
|