Compartilhar via


IReliableConcurrentQueue<T> Interface

Definição

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