fluke/devops-service/lib/helpers/job_waiter.rb

31 lines
663 B
Ruby
Raw Normal View History

2018-04-04 22:44:39 +03:00
require 'db/mongo/models/job_task'
require 'workers/worker'
module Devops
module Helpers
class JobWaiter
class TimeoutReached < StandardError; end
INTERVAL = 5
def initialize(job_id, timeout=5000)
@job_id, @timeout = job_id, timeout
end
def wait
(@timeout / INTERVAL).times do
sleep(INTERVAL)
2018-04-04 22:44:39 +03:00
task = Devops::Model::JobTask.find(@job_id)
case task.status
when Worker::STATUS::COMPLETED
return 0
when Worker::STATUS::FAILED
2018-04-04 22:44:39 +03:00
return task.job_result_code
end
end
raise TimeoutReached
end
end
end
2018-04-04 22:44:39 +03:00
end