module EnqueueExport
Constants
- VERSION
Attributes
pending_exports[RW]
Public Class Methods
batch_size(data)
click to toggle source
# File lib/enqueue_export.rb, line 52 def self.batch_size(data) args = { channel_id: data[0][2], name: 'batch_size' } size = Config.find_by(args).value.to_i data[1].in_groups_of(size, false) end
delayed_job(model, worker_id)
click to toggle source
# File lib/enqueue_export.rb, line 61 def self.delayed_job(model, worker_id) service = if %w[export response].include? model Kernel.const_get("Worker::#{model.capitalize}Service") else Kernel.const_get("Check#{model.capitalize}Service") end Delayed::Job.enqueue(service.new(worker_id: worker_id)) end
export()
click to toggle source
# File lib/enqueue_export.rb, line 24 def self.export @pending_export = PendingExport.where(local_feed_id: nil, worker_id: nil) @pending_export.where(response_id: nil, processed: false) end
generate_id()
click to toggle source
# File lib/enqueue_export.rb, line 20 def self.generate_id SecureRandom.hex(32) end
group_by(model)
click to toggle source
# File lib/enqueue_export.rb, line 46 def self.group_by(model) public_send(model).group_by do |obj| [obj.mode, obj.account_id, obj.channel_id] end.to_a end
perform(model)
click to toggle source
# File lib/enqueue_export.rb, line 9 def self.perform(model) group_by(model).each do |data| batch_size(data).each do |batch| worker_id = generate_id ids = batch.map(&:id) public_send(model).where(id: ids).update_all(worker_id: worker_id) delayed_job(model, worker_id) end end end
qc()
click to toggle source
# File lib/enqueue_export.rb, line 42 def self.qc @pending_qc = PendingQc.where(worker_id: nil) end
response()
click to toggle source
# File lib/enqueue_export.rb, line 29 def self.response @pending_export = PendingExport.where(local_feed_id: nil, worker_id: nil) @pending_export.where(processed: false).where.not(response_id: nil) end
validity()
click to toggle source
# File lib/enqueue_export.rb, line 34 def self.validity @pending_validity = PendingValidity.where( worker_id: nil, validity: false, processed: false ) end