У нас возникла проблема с новой оболочкой Ruby-Flow для Amazon SWF.Ошибки связи с Amazon SWF - Ruby Flow
Проблема в том, что Workflow и Activity работники будут (несколько раз в час) не в состоянии правильно общаться с SWF-сервером. Это проявляется в различных формах:
- рабочие процессы или деятельность не регистрируются, когда рабочие на новые версии запускаются
- рабочего процесса или деятельности рабочих разобьет
- рабочих деятельности будет закончить задачу, а затем получить ошибку при составлении отчетов что они выполнены, поэтому полное исполнение не выполняется.
Для рабочих аварий (как вид), мы видим следующее:
[email protected]:Crucible $RAILS_ENV=development rake crucible:swf:ingress_wf_start
rake aborted!
execution expired
/Users/andy/.rvm/gems/[email protected]/gems/aws-sdk-1.11.1/lib/aws/core/http/connection_pool.rb:301:in `start_session'
/Users/andy/.rvm/gems/[email protected]/gems/aws-sdk-1.11.1/lib/aws/core/http/connection_pool.rb:125:in `session_for'
/Users/andy/.rvm/gems/[email protected]/gems/aws-sdk-1.11.1/lib/aws/core/http/net_http_handler.rb:52:in `handle'
/Users/andy/.rvm/gems/[email protected]/gems/aws-sdk-1.11.1/lib/aws/core/client.rb:238:in `block in make_sync_request'
Когда неудача заключается в отсутствии обновления сервера, что задача была закончена, трассировку очень похожи.
Это, похоже, не проблема SWF как таковой (то есть, это не тайм-аут выполнения операции); это проблема связи с Ruby HTTP. Аналогичные проблемы существуют в SO для общения с API Twitter.
Опять же, это не проблема с истечением тайм-аута SWF; рабочий процесс имеет тайм-аут дня, и каждое действие имеет тайм-аут часа. Ошибки происходят в пределах этой границы.
К сожалению, в основном это работает, я обычно могу начать выполнение рабочих процессов, я просто получаю такую ошибку достаточно часто, чтобы мы не могли закончить ничего, кроме тривиальных заданий. Ошибки достаточно случайны, что устранение неполадок чрезвычайно сложно.
Мы воспроизвели это на разных машинах и из разных сетей. Мы все еще пробуем SWF в разработке, поэтому ни один из неудачников не находится в экземплярах EC2.
Есть ли основная причина, по которой я должен исследовать?
Есть ли шаблон или настройки, которые позволят мне повторить эти сообщения?