Class PublisherOptions (2.37.0-rc)

Configuration options for a Publisher.

These are largely used to control the batching configuration for a publisher. By default a publishers flushes a batch as soon as any of these conditions are met:

  • 10ms after the first message is put in the batch,
  • when the batch contains 100 messages or more,
  • when the batch contains 1MiB of data or more.

Applications developers should consult the Cloud Pub/Sub pricing page when selecting a batching configuration.

Example
  namespace pubsub = ::google::cloud::pubsub;
 
using ::google::cloud::future;
 
using ::google::cloud::Options;
 
using ::google::cloud::StatusOr;
 
[](std::string project_id, std::string topic_id) {
   
auto topic = pubsub::Topic(std::move(project_id), std::move(topic_id));
   
// By default, the publisher will flush a batch after 10ms, after it
   
// contains more than 100 message, or after it contains more than 1MiB of
   
// data, whichever comes first. This changes those defaults.
   
auto publisher = pubsub::Publisher(pubsub::MakePublisherConnection(
        std
::move(topic),
       
Options{}
           
.set<pubsub::MaxHoldTimeOption>(std::chrono::milliseconds(20))
           
.set<pubsub::MaxBatchBytesOption>(4 * 1024 * 1024L)
           
.set<pubsub::MaxBatchMessagesOption>(200)));

    std
::vector<future<void>> ids;
   
for (char const* data : {"1", "2", "3", "go!"}) {
      ids
.push_back(
          publisher
.Publish(pubsub::MessageBuilder().SetData(data).Build())
             
.then([data](future<StatusOr<std::string>> f) {
               
auto s = f.get();
               
if (!s) return;
                std
::cout << "Sent '" << data << "' (" << *s << ")\n";
             
}));
   
}
    publisher
.Flush();
   
// Block until they are actually sent.
   
for (auto& id : ids) id.get();
 
}

Constructors

PublisherOptions()

PublisherOptions(Options)

Initialize the publisher options.

Expected options are any of the types in the PublisherOptionList

Parameter
Name Description
opts Options

configuration options

Functions

maximum_hold_time() const

Publisher batch control

Returns
Type Description
std::chrono::microseconds

set_maximum_hold_time(std::chrono::duration< Rep, Period >)

Sets the maximum hold time for the messages.

Parameters
Name Description
v std::chrono::duration< Rep, Period >
typename Rep
typename Period
Returns
Type Description
PublisherOptions &

maximum_batch_message_count() const

Publisher batch control

Returns
Type Description
std::size_t

set_maximum_batch_message_count(std::size_t)

Set the maximum number of messages in a batch.

Parameter
Name Description
v std::size_t
Returns
Type Description
PublisherOptions &

maximum_batch_bytes() const

Publisher batch control

Returns
Type Description
std::size_t

set_maximum_batch_bytes(std::size_t)

Set the maximum size for the messages in a batch.

Parameter
Name Description
v std::size_t
Returns
Type Description
PublisherOptions &

message_ordering() const

Return true if message ordering is enabled.

Returns
Type Description
bool

enable_message_ordering()

Enable message ordering.

See Also

the documentation for the Publisher class for details.

Returns
Type Description
PublisherOptions &

disable_message_ordering()

Disable message ordering.

See Also

the documentation for the Publisher class for details.

Returns
Type Description
PublisherOptions &

set_maximum_pending_bytes(std::size_t)

Flow control based on pending bytes.

Parameter
Name Description
v std::size_t
Returns
Type Description
PublisherOptions &

set_maximum_pending_messages(std::size_t)

Flow control based on pending messages.

Parameter
Name Description
v std::size_t
Returns
Type Description
PublisherOptions &

maximum_pending_bytes() const

Publisher flow control.

Returns
Type Description
std::size_t

maximum_pending_messages() const

Publisher flow control.

Returns
Type Description
std::size_t

full_publisher_ignored() const

The current action for a full publisher.

Returns
Type Description
bool

full_publisher_rejects() const

The current action for a full publisher.

Returns
Type Description
bool

full_publisher_blocks() const

The current action for a full publisher.

Returns
Type Description
bool

set_full_publisher_ignored()

Ignore full publishers, continue as usual.

Returns
Type Description
PublisherOptions &

set_full_publisher_rejects()

Configure the publisher to reject new messages when full.

Returns
Type Description
PublisherOptions &

set_full_publisher_blocks()

Configure the publisher to block the caller when full.

Returns
Type Description
PublisherOptions &