Compartir a través de


IReliableConcurrentQueue<T> Interfaz

Definición

Representa una colección confiable de valores persistentes y replicados con el mejor esfuerzo en orden primero en salir.

public interface IReliableConcurrentQueue<T> : Microsoft.ServiceFabric.Data.IReliableState
type IReliableConcurrentQueue<'T> = interface
    interface IReliableState
Public Interface IReliableConcurrentQueue(Of T)
Implements IReliableState

Parámetros de tipo

T

Tipo de los valores contenidos en la cola confiable delgada.

Implementaciones

Comentarios

Se pretende como alternativa a las IReliableQueue<T> cargas de trabajo en las que no se requiere una ordenación estricta, ya que al relajar la restricción de ordenación, se puede mejorar considerablemente la simultaneidad. IReliableQueue<T> restringe los consumidores y productores simultáneos a un máximo de uno, mientras IReliableConcurrentQueue<T> que no impone dicha restricción.

IReliableConcurrentQueue<T> no ofrece la misma semántica de aislamiento de transacciones que las demás estructuras de datos confiables. Consulte las operaciones y propiedades individuales (EnqueueAsync(ITransaction, T, CancellationToken, Nullable<TimeSpan>), TryDequeueAsync(ITransaction, CancellationToken, Nullable<TimeSpan>) y Count) para obtener más información sobre el aislamiento, si existe, que proporcionan.

Se espera que los valores sean relativamente de corta duración en la cola; es decir, que la tasa de salida (TryDequeueAsync(ITransaction, CancellationToken, Nullable<TimeSpan>)) es igual o mayor que la tasa de entrada (EnqueueAsync(ITransaction, T, CancellationToken, Nullable<TimeSpan>)). Infringir esta expectativa puede empeorar el rendimiento del sistema. Una restricción de capacidad de cola planeada que limitará las colas entrantes una vez alcanzada la capacidad ayudará a mantener esta propiedad. propiedad.

Dado que no se garantiza estrictamente el orden de los elementos, no se deben realizar suposiciones sobre la ordenación de dos valores en la cola. El orden primero en el primero en salir se proporciona para la equidad; el tiempo que un valor invierte en la cola debe estar relacionado con la tasa de errores (los errores pueden modificar el orden de la cola) y la tasa de puesta en cola, pero no la tasa de puesta en cola.

IReliableConcurrentQueue<T> no ofrece una operación Peek, pero mediante la combinación TryDequeueAsync(ITransaction, CancellationToken, Nullable<TimeSpan>) y Abort() la misma semántica se puede lograr. Consulte TryDequeueAsync(ITransaction, CancellationToken, Nullable<TimeSpan>) para obtener más detalles y un ejemplo.

Los valores almacenados en esta cola NO SE DEBEN mutar fuera del contexto de una operación en la cola. Se recomienda encarecidamente hacer T inmutable para evitar daños accidentales en los datos.

La transacción es la unidad de simultaneidad: los usuarios pueden tener varias transacciones en curso en cualquier momento dado, pero para una transacción determinada, cada API debe llamarse de una en una. Por lo tanto, todas las API de Reliable Collection que toman una transacción y devuelven una tarea deben esperarse de una en una.

Propiedades

Count

Obtiene el número de valores de .IReliableConcurrentQueue<T>

Name

Obtiene un valor que indica el nombre único de la IReliableState instancia.

(Heredado de IReliableState)

Métodos

EnqueueAsync(ITransaction, T, CancellationToken, Nullable<TimeSpan>)

Almacenar provisionalmente la cola de un valor en la cola.

TryDequeueAsync(ITransaction, CancellationToken, Nullable<TimeSpan>)

Quite provisionalmente un valor de la cola. Si la cola está vacía, la operación de puesta en cola esperará a que un elemento esté disponible.

Se aplica a