Amazon AWS SWF Ожидайте сигнала

Я создаю процесс потока, который в какой-то момент требует вмешательства пользователя. Я прочитал документацию и вижу, что я должен использовать сигналы SWF, чтобы продолжить движение по моему потоку.

Я хотел бы знать, есть ли способ потока ожидания сигнала без таймера.

когда я использую

  timer = create_timer_async(30)
  wait_for_any(timer, @signal_received)
  activity.activity_one

мой «activity_one» работает правильно, и выполнение моего рабочего процесса завершается независимо от того, был ли получен мой сигнал через 30 секунд. Но если я попытаюсь бежать

  wait_for_any(@signal_received)
  activity.activity_one

мой activity_one никогда не запускается и продолжает зацикливаться на задаче решения для «wait_for_any»

Есть ли способ заставить его просто зависнуть в процессе, пока не будет получен сигнал?


person bertmaclin    schedule 21.08.2014    source источник


Ответы (1)


Судя по вашему описанию, SDK ведет себя так, как ожидалось. В первом случае wait_for_any ожидает ЛИБО срабатывания таймера (через 30 секунд) или получения сигнала. Итак, как вы упомянули, ваша деятельность выполняется правильно через 30 секунд, но только потому, что срабатывает таймер, а не потому, что сигнал получен.

Во втором случае, поскольку вы ожидаете только получения сигнала, действие никогда не запускается, потому что решающий элемент никогда не получает сигнал. Я предполагаю, что вы не правильно запускаете сигнал. Можете ли вы объяснить, как вы запускаете сигнал?

person Ana Todor    schedule 08.12.2014