2016-02-02 10:34:17 +03:00
|
|
|
require "workers/delete_expired_server_worker"
|
2016-01-20 01:43:34 +03:00
|
|
|
|
|
|
|
|
module Devops
|
|
|
|
|
module Executor
|
|
|
|
|
class ExpirationScheduler
|
|
|
|
|
def initialize(expires, server)
|
|
|
|
|
@expires, @server = expires, server
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def schedule_expiration!
|
|
|
|
|
return unless @expires
|
2016-03-09 15:44:57 +03:00
|
|
|
DeleteExpiredServerWorker.perform_in(interval_in_seconds, server_id: @server.id)
|
2016-01-20 01:43:34 +03:00
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def interval_in_seconds
|
|
|
|
|
interval = @expires.to_i
|
|
|
|
|
measure_unit = @expires.chars.last
|
|
|
|
|
case measure_unit
|
|
|
|
|
when 's'
|
|
|
|
|
interval
|
|
|
|
|
when 'm'
|
|
|
|
|
interval * 60
|
|
|
|
|
when 'h'
|
|
|
|
|
interval * 60 * 60
|
|
|
|
|
when 'd'
|
|
|
|
|
interval * 60 * 60 * 24
|
|
|
|
|
when 'w'
|
|
|
|
|
interval * 60 * 60 * 24 * 7
|
|
|
|
|
else
|
|
|
|
|
raise 'Wrong interval format'
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|