Активный или запущенный рабочий процесс - PullRequest
2 голосов
/ 13 июня 2011

В субботу на SharePoint в Лисле, штат Иллинойс, Роберт Бог сказал, что есть разница между активными и работающими рабочими процессами.Я смотрел в Интернете, но кто-то может уточнить?

Если у меня может быть до миллиона активных рабочих процессов на сервере, почему я могу иметь только 15 или около того рабочих процессов на сервере?

1 Ответ

1 голос
/ 16 июня 2011

Да, там есть разница:

  • «Выполнение» Все рабочие процессы, которые в данный момент что-то делают (т.е. выполняют действие).
  • «Активный» Рабочие процессы - это просто все, которые «работают», но в настоящее время ничего не делают - например, в ожидании OnItemChanged или DelayActivity.

Ключом к пониманию этого является WorkflowEventDeliveryThrottle (здесь для SP2007, потому что документации на 2010 год не существует). Стандартным значением для этого свойства является 15. Это означает, что одновременно может выполняться только 15 параллельных рабочих процессов. После достижения этого предела рабочие процессы помещаются в очередь в OWSTimer, который выполняет рабочие процессы через некоторое произвольное время (я думаю, что задание таймера рабочего процесса устанавливается каждые 5 минут).

Этот газ можно изменить с помощью stsadm (AFAIK Powershell не работает - вы можете изменить свойство с помощью кода настройки курса SPWebService.WorkflowEventDeliveryThrottle):

stsadm -o setproperty -pn workflow-eventdelivery-throttle -pv "20"

Теперь максимальное количество «запущенных» рабочих процессов (лучше было бы «максимальное количество событий рабочих процессов, которые могут обрабатываться одновременно» ) было бы 20. См. Некоторые другие сообщения SO где кто-то играет с параметром.

Есть хороший технический пост в блоге для понимания обработки событий рабочего процесса: О параметре «workflow-eventdelivery-throttle» .

Аналогичным параметром является WorkflowEventDeliveryBatchSize , который обозначает максимальное количество событий рабочего процесса, которые обрабатываются в пакете.


Резюме:
  • Вы можете иметь тысячи активных рабочих процессов, например все ожидают изменения элемента рабочего процесса. Они не запущены, не закончены - просто активны.
  • Существует ограниченное количество событий рабочего процесса , которые могут обрабатываться одновременно (вы называли это "запущенными" рабочими процессами)
  • Вы также можете иметь тысячи работающих рабочих процессов, например все они могут быть вызваны активностью задержки, установленной на 5 минут, но одновременно выполняется только ограниченное их количество, а остальные помещаются в очередь для последующего выполнения.
...