#cadence-workflow #uber-cadence
Вопрос:
Запрос — Запрос заключается в том, чтобы раскрыть это внутреннее состояние внешнему миру. Запрос отображается как асинхронный обратный вызов, вызываемый внешними сущностями.
Что вы подразумеваете под асинхронным обратным вызовом?
И Док говорит, что запрос имеет два ограничения 1). Не должно изменять состояние рабочего процесса 2). Никакой операции блокировки не будет.
@Override
public String queryGreeting() {
greeting = "val";
return greeting;
}
Но я изменил переменную в методе запроса, и она меняет значение.
Является ли это просто убеждением, что мы не должны писать изменяемый или блокирующий код внутри метода запроса?
Я не видел никакой разницы между запросом и сигналом. Метод запроса будет вызван даже после завершения рабочего процесса, когда сигнал as не будет?
Правильно ли я понимаю?
Ответ №1:
Запрос не должен изменять переменные рабочего процесса. Это нарушит восстановление рабочего процесса.
Сигнал может изменять любые данные рабочего процесса, а также вызывать блокирующие операции, такие как действия.
Комментарии:
1. Спасибо за ответ!! Извините, я перепутал. Это синхронный обратный вызов, а не асинхронный. Что это значит? (запрос отображается как синхронный обратный вызов)
2. Это означает, что вызывающий запрос блокируется до тех пор, пока функция запроса не вернется.