Sha256: 54b529f74e85f84ff0eae34ad8f5eda8ec887ca02fb414e984e9462372831300
Contents?: true
Size: 1.26 KB
Versions: 2
Compression:
Stored size: 1.26 KB
Contents
require 'backend' class BackgroundTasks # send the data to backend API # This is an async task def self.http_task(url, timeout, api_key, retries, payload) Async do |task| task.async do # below code includes exponential backoff algorithm retries = 0 begin # send to firetail backend # values to use for backend object options = {"url": url, "network_timeout": timeout, "api_key": api_key} request = Backend.send_now(payload, options) Firetail.logger.info "Successfully sent to Firetail" rescue Net::HTTPError => e # if request response code is an error # then try sending. # @number_of_retries is configurable in .yaml file if retries <= retries retries += 1 max_sleep_seconds = Float(2 ** retries) sleep rand(0..max_sleep_seconds) retry else raise "Giving up on the server after #{retries} retries. Got error: #{e.message}" end end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
firetail-1.0.1 | lib/background_tasks.rb |
firetail-0.0.1.pre.alpha | lib/background_tasks.rb |