2013-11-01 5 views
2

Мы переходим к Amazon Simple Workflow Service из различных процессов на основе cron. Многим из них больше не нужно будет работать в определенное время, и это будет просто вызвано при необходимости. Однако для определенных рабочих процессов нам нужно гарантировать, что рабочий процесс (или, скорее, все действия в рабочем процессе) не будут возникать параллельно, и в любое время будет работать только один. Как только это будет закончено, тогда хорошо, что он снова запустится.Использование workflowId для обеспечения уникальности рабочего процесса

Будут ли какие-либо проблемы, или это как-то плохой дизайн, зависит от уникальности рабочего процесса? Если да, то каковы будут проблемы и как система может быть разработана для обеспечения того, чтобы определенные рабочие процессы не запускались, когда они не должны быть.

ответ

1

В зависимости от SWF и использования workflowId для уникального исполнения в качестве состояния настойчивости и уровня арбитража (в зависимости от того, что наступит во втором, будет отклонено) определенно неплохой дизайн - это именно то, для чего предназначена услуга.

Да, и workflowId, и activityId достаточно, чтобы обеспечить уникальное выполнение.

Теперь, для действий в рамках рабочего процесса, activityId необязательно должен быть уникальным, так как до решения можно запланировать работу по задаче. См. Руководство по BOO SWF для примеров serial and parallel workflow executions.