IReliableConcurrentQueue<T> Interface
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Representa uma coleção confiável de valores persistentes e replicados com ordenação de primeira saída de melhor esforço.
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
O tipo dos valores contidos na fila confiável slim.
- Implementações
Comentários
Pretendido como uma alternativa para IReliableQueue<T> cargas de trabalho em que a ordenação estrita não é necessária, pois, ao relaxar a restrição de ordenação, a simultaneidade pode ser muito melhorada. IReliableQueue<T> restringe consumidores e produtores simultâneos a um máximo de um cada, enquanto IReliableConcurrentQueue<T> não impõe tal restrição.
IReliableConcurrentQueue<T> não oferece a mesma semântica de isolamento de transação que as outras estruturas de dados confiáveis. Consulte as operações e propriedades individuais (EnqueueAsync(ITransaction, T, CancellationToken, Nullable<TimeSpan>)TryDequeueAsync(ITransaction, CancellationToken, Nullable<TimeSpan>)e Count) para obter detalhes sobre qual isolamento, se houver, eles fornecem.
Espera-se que os valores sejam relativamente curtos na fila; em outras palavras, que a taxa de saída (TryDequeueAsync(ITransaction, CancellationToken, Nullable<TimeSpan>)) é igual ou maior que a taxa de entrada (EnqueueAsync(ITransaction, T, CancellationToken, Nullable<TimeSpan>)). Violar essa expectativa pode piorar o desempenho do sistema. Uma restrição de capacidade de fila planejada que limitará as Enfileiramentos de entrada assim que a capacidade for atingida ajudará a manter essa propriedade. property.
Como a ordenação de elementos não é estritamente garantida, suposições sobre a ordenação de dois valores na fila NÃO DEVEM ser feitas. A ordem de primeira saída de melhor esforço é fornecida para a imparcialidade; o tempo que um valor gasta na fila deve estar relacionado à taxa de falha (falhas podem alterar a ordenação da fila) e à taxa de desemqueamento, mas não à taxa de enfileiramento.
IReliableConcurrentQueue<T> não oferece uma operação Peek, no entanto, combinando TryDequeueAsync(ITransaction, CancellationToken, Nullable<TimeSpan>) e Abort() a mesma semântica pode ser obtida. Consulte TryDequeueAsync(ITransaction, CancellationToken, Nullable<TimeSpan>) para obter detalhes adicionais e um exemplo.
Os valores armazenados nessa fila NÃO DEVEM ser alterados fora do contexto de uma operação na fila. É altamente recomendável tornar T
imutável para evitar corrupção acidental de dados.
Transação é a unidade de simultaneidade: os usuários podem ter várias transações em voo a qualquer momento, mas para uma determinada transação cada API deve ser chamada uma de cada vez. Portanto, todas as APIs de Coleção Confiável que recebem uma transação e retornam uma Tarefa devem ser aguardadas uma de cada vez.
Propriedades
Count |
Obtém o número de valores no IReliableConcurrentQueue<T>. |
Name |
Obtém um valor que indica o nome exclusivo da IReliableState instância. (Herdado de IReliableState) |
Métodos
EnqueueAsync(ITransaction, T, CancellationToken, Nullable<TimeSpan>) |
Preparar a enfileiramento de um valor para a fila. |
TryDequeueAsync(ITransaction, CancellationToken, Nullable<TimeSpan>) |
Desativar provisoriamente um valor da fila. Se a fila estiver vazia, a operação de remoção aguardará que um item fique disponível. |
Aplica-se a
Azure SDK for .NET