32 lines
947 B
Ruby
32 lines
947 B
Ruby
|
|
require 'json'
|
||
|
|
require 'resque'
|
||
|
|
require 'resque-retry'
|
||
|
|
require 'net/http'
|
||
|
|
require 'digest/md5'
|
||
|
|
|
||
|
|
module JamRuby
|
||
|
|
|
||
|
|
# http://blog.bignerdranch.com/1643-never-use-resque-for-serial-jobs/
|
||
|
|
# periodically scheduled to find sources that need to be brought down, or alternatively, it seems the client failed to start sourcing
|
||
|
|
class IcecastSourceCheck
|
||
|
|
|
||
|
|
@queue = :icecast_source_check
|
||
|
|
|
||
|
|
@@log = Logging.logger[IcecastSourceCheck]
|
||
|
|
|
||
|
|
def self.perform
|
||
|
|
@@log.debug("waking up")
|
||
|
|
|
||
|
|
# if we haven't seen updated_at be tickled in 5 minutes, but config_changed is still set to TRUE, this record has gotten stale
|
||
|
|
IcecastMount.find_each(:conditions => "sourced_needs_changing_at < (NOW() - interval '#{APP_CONFIG.icecast_max_sourced_changed} second')", :batch_size => 100) do |server|
|
||
|
|
server.with_lock do
|
||
|
|
IcecastConfigWriter.enqueue(server.server_id)
|
||
|
|
end
|
||
|
|
|
||
|
|
end
|
||
|
|
|
||
|
|
@@log.debug("done")
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
end
|