2017-10-04 3 views
0

Je comprends que le verrouillage est défini par transaction pour IReliableQueue dans Service Fabric. J'ai une exigence où une fois que les données sont lues à partir de ReliableQueue dans une transaction, j'ai besoin de transmettre les données à mon client et de conserver le verrou sur ces données pendant une certaine durée et si le traitement échoue dans le client, écrire les données retour à la file d'attente (de préférence en tête de sorte qu'il soit choisi en premier à l'itération suivante).Mécanisme de verrouillage pessimiste avec IReliableQueue dans Azure Service Fabric

Répondre

0

Service Fabric ne supporte pas cela. Je vous recommande d'utiliser un mécanisme de file d'attente externe pour cela. Par exemple, Azure Service Bus Queues fournit la fonctionnalité que vous décrivez.

Vous pouvez utiliser this package pour recevoir des messages SB dans vos services.

0

conserver le verrou sur ces données pendant une certaine durée

Nous avons fait une ou deux fois trop dans d'autres contextes avec succès en utilisant modifiables listes et un document-champ LockedUntillUtc (initialisé à mininimum ou null , ou en utilisant une collection fiable différente de clés verrouillées (triées sur LockedUntillUtc?) - qui correspond le mieux à vos besoins?).

Si vous ne pouvez pas faire confiance à vos clients d'adhérer à un tel blocage demande et d'écriture/contrat non-lock-demande, pensez à un modèle ETag - seulement retourné sur un verrou de demande ... Successfull

+0

Can vous s'il vous plaît élaborer ou fournir des liens qui donnent plus de détails? Vous voulez dire que vous avez réalisé avec des collections fiables dans Service Fabric? – vmn