Sha256: 0b0a7c716cd8eaf8e9bc658137edd9fd9b02eda6dc223b90e73a4573f4f9f239
Contents?: true
Size: 1.74 KB
Versions: 7
Compression:
Stored size: 1.74 KB
Contents
require 'tmpdir' module Qwirk module Batch class FileStatusStrategy attr_reader :finished_count if defined?(Rails) && defined?(Rails.root) @@persist_dir = File.join(Rails.root, 'log', 'qwirk') else @@persist_dir = File.join(Dir.tmpdir, 'qwirk') end def self.persist_dir @@persist_dir end def self.persist_dir=(dir) @@persist_dir = dir end def initialize(options) @worker_name = options[:worker_name] @dir = options[:persist_dir] || @@persist_dir end # Resume any previous jobs that were stopped def resume? false end def start(file) @file = file @pending_hash = {} @fail_array = [] @finished_count = 0 end def stop return unless @file save_yaml = { :file => @file, :pending => @pending_hash, :fail => @fail_array, :finished_count => @finished_count } end def finish @file = nil end def start_record(message_id, file_pos) @pending_hash[message_id] = file_pos end def finish_record(message_id) @pending_hash.delete(message_id) @finished_count += 1 end def fail_record(message_id) file_pos = @pending_hash.delete(message_id) raise "Invalid message #{message_id}, not in pending_hash" unless file_pos @fail_array << file_pos end def pending_count @pending_hash.size end def failed_count @fail_array.size end ####### private ####### def save persist_file = end end end end
Version data entries
7 entries across 7 versions & 1 rubygems