Как увеличить время ожидания для актера Azure Service Fabric?

В наших журналах ошибок я обнаружил, что наша служба без сохранения состояния Azure Service Fabric обнаружила Microsoft.ServiceFabric.Actors.Runtime.DuplicateMessageException при попытке вызвать метод на прокси Actor после определенного периода времени. Актер может занять некоторое время, чтобы бежать. Полное сообщение об исключении было:

Актер Microsoft.ServiceFabric.Actors.Runtime.ActorConcurrencyLock получал один и тот же запрос более одного раза. Это может произойти для запроса, который занимает больше времени обработки, чем настроенный OperationTimeout на стороне клиента, поскольку клиент повторяет попытку на TimeoutException.

Я нигде не вижу, чтобы я мог настроить это значение. Я вижу ссылку на это в документации для FabricTransportSettings класс, но я не могу сказать, где этот тип используется.

Поскольку ожидается, что наш метод актера займет некоторое время (часто минуты), если эта ошибка действительно связана с тайм-аутом, как я могу увеличить OperationTimeout?

3 ответа

Я хотел бы рассмотреть вопрос о том, как изменить действующего субъекта, чтобы вы инициализировали и "затравили" действующего субъекта необходимыми параметрами. Затем запустите таймер для выполнения длительной работы. Затем повторно запросите актера, пока работа не будет завершена, и получите результат.

У нас есть пара длительных рабочих нагрузок с использованием действующих лиц в нашей системе, которые мы настроили для работы таким образом

Вы можете установить значение времени ожидания на уровне сборки.

using Microsoft.ServiceFabric.Services.Remoting.FabricTransport;
[assembly: FabricTransportServiceRemotingProvider(MaxMessageSize = int.MaxValue,OperationTimeoutInSeconds =2000)]

Может быть, вам стоит добавить следующий раздел в файл Settings.xml:

<Section Name="TransportSettings">
    <Parameter Name="MaxMessageSize" Value="1073741824" />
    <Parameter Name="OperationTimeoutInSeconds" Value="6000" />
</Section>

Источник: https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-reliable-actors-fabrictransportsettings

Другие вопросы по тегам