app/jobs/agent_reemit_job.rb
class AgentReemitJob < ActiveJob::Base
# Given an Agent, re-emit all of agent's events up to (and including) `most_recent_event_id`
def perform(agent, most_recent_event_id, delete_old_events = false)
# `find_each` orders by PK, so events get re-created in the same order
agent.events.where("id <= ?", most_recent_event_id).find_each do |event|
event.reemit!
event.destroy if delete_old_events
end
end
end