Вы не можете найти OperationId, в предложенной выше идее OperationID - это идентификатор, сгенерированный вами для идентификации работающей операции, int не генерируется Service Fabric, Service Fabric - это просто оркестратор вашей службы, и он очень мало влияет на дизайн, упомянутый выше. Поскольку ваш первоначальный вопрос был о том, как исправить «Решение» вместо «как решить проблему», трудно ответить чем-то совершенно отличным от того, что вы спрашивали. Я бы порекомендовал вам задать еще один вопрос на тему «Как отменить удаленную операцию с помощью Service Fabric»
аюсь выполнить функцию отмены задач в сервисе состояния сервиса.
План использует токен отмены для распространения уведомлений на связанные темы / Задачи.
Проблема в том, что, хотя эти долго выполняющиеся задачи и потоки ожидают этого сигнала, я не уверен, как найти правильные токены отмены на основе других вызовов Web API.
Я думал об использовании надежного словаря, но даже до того, как опробовать его, я предполагаю, что это зашло в тупик, потому что cancellationToken нельзя сериализовать / десериализовать.
Пожалуйста, помогите мне, что может быть хорошим решением для решения этой проблемы.
Обновить (Я не хотел создавать новую тему, теряя некоторые важные контексты, упомянутые в этой теме, поэтому обновляю в этом посте.)
Подтверждено, что приведенное ниже описание ссылки действительно показывает Надежный сервис, и методы-акторы могут поддерживать токен отмены Тем не менее, типичный вариант использования - это получение запроса на отмену напрямую через веб-API с использованием таких пользовательских функций, как обновление клика, переход на другую страницу и т. Д. В таком сценарии одна и та же конечная точка должна получать запрос, в то время как предыдущий запрос http сохраняется с некоторыми долгое задание или застрял. Это не сценарий в этой теме.
CancellationToken поддержка для IService / IActor
Методы Reliable Service и Reliable Actor теперь поддерживают токен отмены, который можно удалить с помощью ActorProxy и ServiceProxy, что позволяет реализовать совместное аннулирование. Клиенты, которые хотят отменить долгосрочную службу или метод субъекта, могут сигнализировать токен отмены, и это намерение отмены будет распространено на метод субъекта / службы. Затем этот метод может определить, когда остановить выполнение, посмотрев на состояние его аргумента токена отмены.
Например, контракт актера, который может иметь долгосрочный метод, может быть смоделирован, как показано ниже:
public interface IPrimeNumberActorInterface : IActor
{
Task<ulong> FindNextPrimeNumberAsync
(ulong previous, CancellationToken cancellationToken);
}
Код клиента, который желает отменить выполнение метода, может сообщить о своем намерении, отменив токен отмены.