Пишу свой первый Workflow на Temporal, пытаюсь сделать остановку работы Активити на определённом эксепшене.
У меня вот такой код:
$this->activityStub = Workflow::newActivityStub(
TConsigneeCreateActivityInterface::class,
ActivityOptions::new()
->withStartToCloseTimeout(CarbonInterval::minute(3))
->withRetryOptions(
RetryOptions::new()
->withInitialInterval(CarbonInterval::seconds(1))
->withMaximumAttempts(5)
->withNonRetryableExceptions([StopWorkException::class])
)
);
Я сделал свой
StopWorkException
<?php
use Exception;
class StopWorkException extends Exception
{
}
В общем, экспешен выбрасывается в активити, но не происходит остановки работы. Повторные вызовы активити происходят ещё 5 раз и потом уже падает всё с ошибкой, что превышен лимит повторов.
В официальной документации написано так же.
https://docs.temporal.io/develop/php/failure-detection