require 'resque-retry' require 'timeout' class AssetImageConversionRequest TIMEOUT_IN_SECONDS = 30 extend Resque::Plugins::Retry @retry_limit = 5 @retry_delay = 60 @queue = :requested_asset_images def self.perform(asset_id) Timeout::timeout(TIMEOUT_IN_SECONDS) do asset = SwfAsset.find(asset_id) asset.convert_swf_if_not_converted! end end class OnCreation < AssetImageConversionRequest @retry_limit = 5 @retry_delay = 60 @queue = :requested_asset_images_on_creation end class OnBrokenImageReport < AssetImageConversionRequest @retry_limit = 5 @retry_delay = 60 @queue = :reportedly_broken_asset_images end end