Абстракция для распределенного CancellationToken - PullRequest
0 голосов
/ 11 июня 2018

Говоря об отмене и микросервисах / облачной архитектуре, кажется, что стандартный класс .NET CancellationTokenSource не соответствует потребностям: он не предоставляет никакого механизма расширяемости, позволяющего хранить состояние во внешнем централизованном хранилище и позволяющего отменятьоперация, которая начала выполняться на одном экземпляре службы из другого экземпляра службы.

Для пример , у меня может быть служба «Клиент» с дорогостоящим методом «UploadAvatar» (на самом деле у меня есть метод, выполняющийся длянесколько минут).Услуга «Клиент» масштабируема и у нас есть 2 экземпляра.Пользователь загружает свою фотографию, и мы начинаем ее обрабатывать.В этот момент он загружает еще одну фотографию, и старая работа больше не актуальна, поэтому по соображениям производительности нам нужно отменить ее.

Поиск в Интернете не дал мне никаких очевидных реализаций для этой основной задачи.Кто-нибудь знает библиотеку, которая обеспечивает отмену распределенной операции?И есть ли у вас мысли, почему .NET FCL не предоставляет такой класс или абстракцию?

PS: Было бы неплохо, если бы абстракция была как можно ближе к существующему общедоступному интерфейсу CancellationToken, чтобы было проще перенести существующий код в облако и масштабировать существующие сервисы.

...