pub struct Queue {
pub name: String,
pub http_target: Option<HttpTarget>,
pub rate_limits: Option<RateLimits>,
pub retry_config: Option<RetryConfig>,
pub state: i32,
pub purge_time: Option<Timestamp>,
pub task_ttl: Option<Duration>,
pub tombstone_ttl: Option<Duration>,
pub stackdriver_logging_config: Option<StackdriverLoggingConfig>,
pub type: i32,
pub stats: Option<QueueStats>,
pub queue_type: Option<QueueType>,
}
Expand description
A queue is a container of related tasks. Queues are configured to manage how those tasks are dispatched. Configurable properties include rate limits, retry options, queue types, and others.
Fields§
§name: String
Caller-specified and required in [CreateQueue][google.cloud.tasks.v2beta3.CloudTasks.CreateQueue], after which it becomes output only.
The queue name.
The queue name must have the following format:
projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID
PROJECT_ID
can contain letters ([A-Za-z]), numbers ([0-9]), hyphens (-), colons (:), or periods (.). For more information, see Identifying projectsLOCATION_ID
is the canonical ID for the queue’s location. The list of available locations can be obtained by calling [ListLocations][google.cloud.location.Locations.ListLocations]. For more information, see https://cloud.google.com/about/locations/.QUEUE_ID
can contain letters ([A-Za-z]), numbers ([0-9]), or hyphens (-). The maximum length is 100 characters.
http_target: Option<HttpTarget>
Modifies HTTP target for HTTP tasks.
rate_limits: Option<RateLimits>
Rate limits for task dispatches.
[rate_limits][google.cloud.tasks.v2beta3.Queue.rate_limits] and [retry_config][google.cloud.tasks.v2beta3.Queue.retry_config] are related because they both control task attempts. However they control task attempts in different ways:
- [rate_limits][google.cloud.tasks.v2beta3.Queue.rate_limits] controls the total rate of dispatches from a queue (i.e. all traffic dispatched from the queue, regardless of whether the dispatch is from a first attempt or a retry).
- [retry_config][google.cloud.tasks.v2beta3.Queue.retry_config] controls what happens to particular a task after its first attempt fails. That is, [retry_config][google.cloud.tasks.v2beta3.Queue.retry_config] controls task retries (the second attempt, third attempt, etc).
The queue’s actual dispatch rate is the result of:
- Number of tasks in the queue
- User-specified throttling: [rate_limits][google.cloud.tasks.v2beta3.Queue.rate_limits], [retry_config][google.cloud.tasks.v2beta3.Queue.retry_config], and the [queue’s state][google.cloud.tasks.v2beta3.Queue.state].
- System throttling due to
429
(Too Many Requests) or503
(Service Unavailable) responses from the worker, high error rates, or to smooth sudden large traffic spikes.
retry_config: Option<RetryConfig>
Settings that determine the retry behavior.
- For tasks created using Cloud Tasks: the queue-level retry settings apply to all tasks in the queue that were created using Cloud Tasks. Retry settings cannot be set on individual tasks.
- For tasks created using the App Engine SDK: the queue-level retry settings apply to all tasks in the queue which do not have retry settings explicitly set on the task and were created by the App Engine SDK. See App Engine documentation.
state: i32
Output only. The state of the queue.
state
can only be changed by called
[PauseQueue][google.cloud.tasks.v2beta3.CloudTasks.PauseQueue],
[ResumeQueue][google.cloud.tasks.v2beta3.CloudTasks.ResumeQueue], or
uploading
queue.yaml/xml.
[UpdateQueue][google.cloud.tasks.v2beta3.CloudTasks.UpdateQueue] cannot be
used to change state
.
purge_time: Option<Timestamp>
Output only. The last time this queue was purged.
All tasks that were [created][google.cloud.tasks.v2beta3.Task.create_time] before this time were purged.
A queue can be purged using [PurgeQueue][google.cloud.tasks.v2beta3.CloudTasks.PurgeQueue], the App Engine Task Queue SDK, or the Cloud Console.
Purge time will be truncated to the nearest microsecond. Purge time will be unset if the queue has never been purged.
task_ttl: Option<Duration>
The maximum amount of time that a task will be retained in this queue.
Queues created by Cloud Tasks have a default task_ttl
of 31 days.
After a task has lived for task_ttl
, the task will be deleted
regardless of whether it was dispatched or not.
The task_ttl
for queues created via queue.yaml/xml is equal to the
maximum duration because there is a
storage quota for
these queues. To view the maximum valid duration, see the documentation for
[Duration][google.protobuf.Duration].
tombstone_ttl: Option<Duration>
The task tombstone time to live (TTL).
After a task is deleted or executed, the task’s tombstone is
retained for the length of time specified by tombstone_ttl
.
The tombstone is used by task de-duplication; another task with the same
name can’t be created until the tombstone has expired. For more information
about task de-duplication, see the documentation for
[CreateTaskRequest][google.cloud.tasks.v2beta3.CreateTaskRequest.task].
Queues created by Cloud Tasks have a default tombstone_ttl
of 1 hour.
stackdriver_logging_config: Option<StackdriverLoggingConfig>
Configuration options for writing logs to Stackdriver Logging. If this field is unset, then no logs are written.
type: i32
Immutable. The type of a queue (push or pull).
Queue.type
is an immutable property of the queue that is set at the queue
creation time. When left unspecified, the default value of PUSH
is
selected.
stats: Option<QueueStats>
Output only. The realtime, informational statistics for a queue. In order to receive the statistics the caller should include this field in the FieldMask.
queue_type: Option<QueueType>
Implementations§
Trait Implementations§
source§impl Message for Queue
impl Message for Queue
source§fn encoded_len(&self) -> usize
fn encoded_len(&self) -> usize
source§fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
source§fn encode_to_vec(&self) -> Vec<u8>where
Self: Sized,
fn encode_to_vec(&self) -> Vec<u8>where
Self: Sized,
source§fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
source§fn encode_length_delimited_to_vec(&self) -> Vec<u8>where
Self: Sized,
fn encode_length_delimited_to_vec(&self) -> Vec<u8>where
Self: Sized,
source§fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
source§fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
source§fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self
. Read moresource§fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self
.source§impl PartialEq for Queue
impl PartialEq for Queue
impl StructuralPartialEq for Queue
Auto Trait Implementations§
impl Freeze for Queue
impl RefUnwindSafe for Queue
impl Send for Queue
impl Sync for Queue
impl Unpin for Queue
impl UnwindSafe for Queue
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T
in a tonic::Request