Class: SidekiqPublisher::Job
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- SidekiqPublisher::Job
- Defined in:
- lib/sidekiq_publisher/job.rb
Constant Summary collapse
- BATCH_KEYS =
%i(id job_id job_class args run_at queue wrapped created_at).freeze
Class Method Summary collapse
- .generate_sidekiq_jid ⇒ Object
- .job_retention_period ⇒ Object
- .published!(ids) ⇒ Object
- .purge_expired_published! ⇒ Object
- .unpublished_batches(batch_size: SidekiqPublisher.batch_size) ⇒ Object
Class Method Details
.generate_sidekiq_jid ⇒ Object
21 22 23 |
# File 'lib/sidekiq_publisher/job.rb', line 21 def self.generate_sidekiq_jid SecureRandom.hex(12) end |
.job_retention_period ⇒ Object
25 26 27 |
# File 'lib/sidekiq_publisher/job.rb', line 25 def self.job_retention_period SidekiqPublisher.job_retention_period end |
.published!(ids) ⇒ Object
29 30 31 |
# File 'lib/sidekiq_publisher/job.rb', line 29 def self.published!(ids) where(id: ids).update_all(published_at: Time.now.utc) end |
.purge_expired_published! ⇒ Object
33 34 35 36 37 38 |
# File 'lib/sidekiq_publisher/job.rb', line 33 def self.purge_expired_published! SidekiqPublisher.logger.info("#{name} purging expired published jobs.") count = purgeable.delete_all SidekiqPublisher.logger.info("#{name} purged #{count} expired published jobs.") SidekiqPublisher.metrics_reporter.try(:count, "sidekiq_publisher.purged", count) end |
.unpublished_batches(batch_size: SidekiqPublisher.batch_size) ⇒ Object
40 41 42 43 44 45 |
# File 'lib/sidekiq_publisher/job.rb', line 40 def self.unpublished_batches(batch_size: SidekiqPublisher.batch_size) unpublished.in_batches(of: batch_size, load: false) do |relation| batch = relation.pluck(*BATCH_KEYS) yield batch.map { |values| Hash[BATCH_KEYS.zip(values)] } end end |