public abstract class PublisherClient : IAsyncDisposable
Reference documentation and code samples for the Cloud Pub/Sub v1 API class PublisherClient.
A PubSub publisher that is associated with a specific TopicName.
Implements
IAsyncDisposableDerived Types
Namespace
Google.Cloud.PubSub.V1Assembly
Google.Cloud.PubSub.V1.dll
Remarks
This class implements the IAsyncDisposable interface. However, it is recommended to create a single PublisherClient
instance and use it throughout
the lifetime of the application. If the PublisherClient
is registered in a dependency injection container, its
DisposeAsync
method will be called automatically.
Properties
ApiMaxBatchingSettings
public static BatchingSettings ApiMaxBatchingSettings { get; }
The absolute maximum BatchingSettings supported by the service. Maximum values are: ElementCountThreshold = 1,000; ByteCountThreshold = 10,000,000;
Property Value | |
---|---|
Type | Description |
BatchingSettings |
DefaultBatchingSettings
public static BatchingSettings DefaultBatchingSettings { get; }
Default BatchingSettings for PublisherClient. Default values are: ElementCountThreshold = 100; ByteCountThreshold = 1,000,000; DelayThreshold = 10 milliseconds;
Property Value | |
---|---|
Type | Description |
BatchingSettings |
DefaultCompressionBytesThreshold
public static long DefaultCompressionBytesThreshold { get; }
The default CompressionBytesThreshold of 240 bytes for the publisher message compression.
Property Value | |
---|---|
Type | Description |
long |
DefaultDisposeTimeout
public static TimeSpan DefaultDisposeTimeout { get; }
The default DisposeTimeout of 5 seconds for the PublisherClient.
Property Value | |
---|---|
Type | Description |
TimeSpan |
TopicName
public virtual TopicName TopicName { get; }
The associated TopicName.
Property Value | |
---|---|
Type | Description |
TopicName |
Methods
Create(TopicName)
public static PublisherClient Create(TopicName topicName)
Create a PublisherClient instance associated with the specified TopicName, using default settings.
Parameter | |
---|---|
Name | Description |
topicName | TopicName The TopicName to publish messages to. Must not be null. |
Returns | |
---|---|
Type | Description |
PublisherClient | A PublisherClient instance associated with the specified TopicName. |
Create(TopicName, ClientCreationSettings, Settings)
[Obsolete("Use PublisherClient.Create(TopicName) to use the default settings, or PublisherClientBuilder for customization.")]
public static PublisherClient Create(TopicName topicName, PublisherClient.ClientCreationSettings clientCreationSettings = null, PublisherClient.Settings settings = null)
Create a PublisherClient instance associated with the specified TopicName.
The default settings
and clientCreationSettings
are suitable for machines with
high network bandwidth (e.g. Google Compute Engine instances). If running with more limited network bandwidth, some
settings may need changing; especially
PublisherServiceApiSettings.PublishSettings.Retry.
By default this method generates a gRPC channel per CPU core; if using a high-core-count machine and using many
clients concurrently then this may need reducing; use the setting ClientCount.
Parameters | |
---|---|
Name | Description |
topicName | TopicName The TopicName to publish messages to. Must not be null. |
clientCreationSettings | PublisherClientClientCreationSettings Optional. PublisherClient.ClientCreationSettings specifying how to create PublisherServiceApiClients. |
settings | PublisherClientSettings Optional. PublisherClient.Settings for creating a PublisherClient. |
Returns | |
---|---|
Type | Description |
PublisherClient | A PublisherClient instance associated with the specified TopicName. |
CreateAsync(TopicName)
public static Task<PublisherClient> CreateAsync(TopicName topicName)
Creates a PublisherClient instance associated with the specified TopicName, using default settings.
Parameter | |
---|---|
Name | Description |
topicName | TopicName The TopicName to publish messages to. Must not be null. |
Returns | |
---|---|
Type | Description |
TaskPublisherClient | A PublisherClient instance associated with the specified TopicName. |
CreateAsync(TopicName, ClientCreationSettings, Settings)
[Obsolete("Use PublisherClient.CreateAsync(TopicName) to use the default settings, or PublisherClientBuilder for customization.")]
public static Task<PublisherClient> CreateAsync(TopicName topicName, PublisherClient.ClientCreationSettings clientCreationSettings = null, PublisherClient.Settings settings = null)
Create a PublisherClient instance associated with the specified TopicName.
The default settings
and clientCreationSettings
are suitable for machines with
high network bandwidth (e.g. Google Compute Engine instances). If running with more limited network bandwidth, some
settings may need changing; especially
PublisherServiceApiSettings.PublishSettings.Retry.
By default this method generates a gRPC channel per CPU core; if using a high-core-count machine and using many
clients concurrently then this may need reducing; use the setting ClientCount.
Parameters | |
---|---|
Name | Description |
topicName | TopicName The TopicName to publish messages to. Must not be null. |
clientCreationSettings | PublisherClientClientCreationSettings Optional. PublisherClient.ClientCreationSettings specifying how to create PublisherServiceApiClients. |
settings | PublisherClientSettings Optional. PublisherClient.Settings for creating a PublisherClient. |
Returns | |
---|---|
Type | Description |
TaskPublisherClient | A PublisherClient instance associated with the specified TopicName. |
DisposeAsync()
public virtual ValueTask DisposeAsync()
Disposes this PublisherClient asynchronously.
Returns | |
---|---|
Type | Description |
ValueTask |
This method asynchronously waits for the time interval as specified in the DisposeTimeout for the PublisherClient to send any pending messages. If the clean shutdown is not complete after this time, it is aborted; this may leave some locally queued messages unsent. The time interval can be customized by setting the DisposeTimeout.
PublishAsync(PubsubMessage)
public virtual Task<string> PublishAsync(PubsubMessage message)
Publish a message to the topic specified in TopicName.
Parameter | |
---|---|
Name | Description |
message | PubsubMessage The PubsubMessage to publish. |
Returns | |
---|---|
Type | Description |
Taskstring | A task which completes once the message has been published. The task Result contains the message ID. |
PublishAsync(ByteString)
public virtual Task<string> PublishAsync(ByteString message)
Publish a message to the topic specified in TopicName.
Parameter | |
---|---|
Name | Description |
message | ByteString The ByteString to publish. |
Returns | |
---|---|
Type | Description |
Taskstring | A task which completes once the message has been published. The task Result contains the message ID. |
PublishAsync(IMessage)
public virtual Task<string> PublishAsync(IMessage message)
Publish a message to the topic specified in TopicName.
Parameter | |
---|---|
Name | Description |
message | IMessage The message to publish. |
Returns | |
---|---|
Type | Description |
Taskstring | A task which completes once the message has been published. The task Result contains the message ID. |
PublishAsync(byte[])
public virtual Task<string> PublishAsync(byte[] message)
Publish a message to the topic specified in TopicName.
Parameter | |
---|---|
Name | Description |
message | byte The message to publish. |
Returns | |
---|---|
Type | Description |
Taskstring | A task which completes once the message has been published. The task Result contains the message ID. |
PublishAsync(string, ByteString)
public virtual Task<string> PublishAsync(string orderingKey, ByteString message)
Publish a message to the topic specified in TopicName.
Parameters | |
---|---|
Name | Description |
orderingKey | string The ordering key to use for this message. |
message | ByteString The ByteString to publish. |
Returns | |
---|---|
Type | Description |
Taskstring | A task which completes once the message has been published. The task Result contains the message ID. |
PublishAsync(string, IMessage)
public virtual Task<string> PublishAsync(string orderingKey, IMessage message)
Publish a message to the topic specified in TopicName.
Parameters | |
---|---|
Name | Description |
orderingKey | string The ordering key to use for this message. |
message | IMessage The message to publish. |
Returns | |
---|---|
Type | Description |
Taskstring | A task which completes once the message has been published. The task Result contains the message ID. |
PublishAsync(string, byte[])
public virtual Task<string> PublishAsync(string orderingKey, byte[] message)
Publish a message to the topic specified in TopicName.
Parameters | |
---|---|
Name | Description |
orderingKey | string The ordering key to use for this message. |
message | byte The message to publish. |
Returns | |
---|---|
Type | Description |
Taskstring | A task which completes once the message has been published. The task Result contains the message ID. |
PublishAsync(string, string, Encoding)
public virtual Task<string> PublishAsync(string orderingKey, string message, Encoding encoding = null)
Publish a message to the topic specified in TopicName.
Parameters | |
---|---|
Name | Description |
orderingKey | string The ordering key to use for this message. |
message | string The string to publish. |
encoding | Encoding The encoding for string to byte conversion.
If |
Returns | |
---|---|
Type | Description |
Taskstring | A task which completes once the message has been published. The task Result contains the message ID. |
PublishAsync(string, Encoding)
public virtual Task<string> PublishAsync(string message, Encoding encoding = null)
Publish a message to the topic specified in TopicName.
Parameters | |
---|---|
Name | Description |
message | string The string to publish. |
encoding | Encoding The encoding for string to byte conversion.
If |
Returns | |
---|---|
Type | Description |
Taskstring | A task which completes once the message has been published. The task Result contains the message ID. |
ResumePublish(string)
public virtual void ResumePublish(string orderingKey)
Re-enable publishing the the given ordering key, after an error has caused the ordering key to be disabled.
Parameter | |
---|---|
Name | Description |
orderingKey | string The ordering key to re-enable. |
ShutdownAsync(CancellationToken)
public virtual Task ShutdownAsync(CancellationToken hardStopToken)
Shutdown this PublisherClient. Cancelling hardStopToken
aborts the
clean shutdown process, and may leave some locally queued messages unsent.
The returned Task completes when all queued messages have been published.
The returned Task cancels if hardStopToken
is cancelled.
Parameter | |
---|---|
Name | Description |
hardStopToken | CancellationToken Cancel this CancellationToken to abort publishing queued messages. |
Returns | |
---|---|
Type | Description |
Task | A Task that completes when all queued messages have been published; or cancels if
|
ShutdownAsync(TimeSpan)
public virtual Task ShutdownAsync(TimeSpan timeout)
Shutdown this PublisherClient. If timeout
expires, the clean shutdown process will
abort; leaving some locally queued messages unsent.
The returned Task completes when all queued messages have been published.
The returned Task cancels if the timeout
expires before all messages are published.
Parameter | |
---|---|
Name | Description |
timeout | TimeSpan After this period, abort publishing queued messages. |
Returns | |
---|---|
Type | Description |
Task | A Task that completes when all queued messages have been published; or cancels if
|