Class: Cosmo::Publisher
- Inherits:
-
Object
- Object
- Cosmo::Publisher
- Extended by:
- Forwardable
- Defined in:
- lib/cosmo/publisher.rb
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize ⇒ Publisher
constructor
A new instance of Publisher.
- #publish(subject, data, serializer: nil, **options) ⇒ Object
- #publish_batch(subject, batch, **options) ⇒ Object
- #publish_job(data) ⇒ Object
Constructor Details
Class Method Details
.instance ⇒ Object
13 14 15 |
# File 'lib/cosmo/publisher.rb', line 13 def self.instance @instance ||= new end |
Instance Method Details
#publish(subject, data, serializer: nil, **options) ⇒ Object
21 22 23 24 |
# File 'lib/cosmo/publisher.rb', line 21 def publish(subject, data, serializer: nil, **) payload = (serializer || Stream::Serializer).serialize(data) @client.publish(subject, payload, **) end |
#publish_batch(subject, batch, **options) ⇒ Object
34 35 36 |
# File 'lib/cosmo/publisher.rb', line 34 def publish_batch(subject, batch, **) batch.each { publish(subject, _1, **) } end |
#publish_job(data) ⇒ Object
26 27 28 29 30 31 32 |
# File 'lib/cosmo/publisher.rb', line 26 def publish_job(data) subject, payload, params = data.to_args @client.publish(subject, payload, **params) data.jid rescue NATS::JetStream::Error::NoStreamResponse raise StreamNotFoundError, params[:stream].to_s end |