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 & |