fluke/devops-service/lib/executors/expiration_scheduler.rb

35 lines
818 B
Ruby
Raw Normal View History

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