class Workerholic::StatsStorage
Public Class Methods
delete_expired_job_stats()
click to toggle source
# File lib/workerholic/statistics_storage.rb, line 31 def self.delete_expired_job_stats max_time = Time.now.to_i - 1001 StatsAPI.jobs_classes(false).each do |klass| storage.remove_range_from_set("workerholic:stats:completed_jobs:#{klass}", 0, max_time) storage.remove_range_from_set("workerholic:stats:failed_jobs:#{klass}", 0, max_time) end end
delete_memory_stats()
click to toggle source
# File lib/workerholic/statistics_storage.rb, line 27 def self.delete_memory_stats storage.delete('workerholic:stats:memory:processes') end
save_job(category, job)
click to toggle source
# File lib/workerholic/statistics_storage.rb, line 3 def self.save_job(category, job) job_hash = job.to_hash serialized_job_stats = JobSerializer.serialize(job_hash) namespace = "workerholic:stats:#{category}:#{job.klass}" storage.add_to_set(namespace, job.statistics.completed_at, serialized_job_stats) end
save_processes_memory_usage()
click to toggle source
# File lib/workerholic/statistics_storage.rb, line 20 def self.save_processes_memory_usage PIDS.each do |pid| size = `ps -p #{Process.pid} -o pid=,rss=`.scan(/\d+/).last storage.hash_set('workerholic:stats:memory:processes', pid, size) end end
update_historical_stats(category, klass)
click to toggle source
# File lib/workerholic/statistics_storage.rb, line 11 def self.update_historical_stats(category, klass) current_day_secs = Time.now.utc.to_i - (Time.now.utc.to_i % 86400) namespace = "workerholic:stats:historical:#{category}" namespace_with_class = "workerholic:stats:historical:#{category}:#{klass}" storage.hash_increment_field(namespace, current_day_secs, 1) storage.hash_increment_field(namespace_with_class, current_day_secs, 1) end
Private Class Methods
storage()
click to toggle source
# File lib/workerholic/statistics_storage.rb, line 42 def storage @storage ||= Storage::RedisWrapper.new end