Module: Pgbus::Outbox

Defined in:
lib/pgbus/outbox.rb,
lib/pgbus/outbox/poller.rb

Defined Under Namespace

Classes: Poller

Class Method Summary collapse

Class Method Details

.flush!Object



30
31
32
# File 'lib/pgbus/outbox.rb', line 30

def flush!
  Poller.new.poll_and_publish
end

.publish(queue_name, payload, headers: nil, priority: nil, delay: 0) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
# File 'lib/pgbus/outbox.rb', line 7

def publish(queue_name, payload, headers: nil, priority: nil, delay: 0)
  Instrumentation.instrument("pgbus.outbox.publish", queue: queue_name, kind: :job) do
    OutboxEntry.create!(
      queue_name: queue_name,
      payload: payload,
      headers: headers,
      priority: priority || Pgbus.configuration.default_priority,
      delay: delay
    )
  end
end

.publish_event(routing_key, payload, headers: nil) ⇒ Object



19
20
21
22
23
24
25
26
27
28
# File 'lib/pgbus/outbox.rb', line 19

def publish_event(routing_key, payload, headers: nil)
  Instrumentation.instrument("pgbus.outbox.publish", routing_key: routing_key, kind: :event) do
    event_data = EventBus::Publisher.build_event_data(payload)
    OutboxEntry.create!(
      routing_key: routing_key,
      payload: event_data,
      headers: headers
    )
  end
end