|
Параллельное движение по бизнеспроцессам | ☑ | ||
---|---|---|---|---|
0
Черный всадник
18.05.13
✎
17:23
|
Доброго временисуток.
Есть самописка, в которой используются бизнеспроцессы. Перемещение разных бизнеспроцессов одного вида по точкам маршрута промсходит последовательно. Профайлер показал, что после изменения выполненной задачи система проверят таблицу задач на наличие невыполненых для данного бизнеспроцесса и точки маршрута, после этого, если надо создаётся новая задача. Запросы проверки могут выполняться только последовательно, это как то можно обойти? |
|||
1
Fragster
гуру
18.05.13
✎
17:26
|
почему запросы проверки могут выполняться только последовательно?
|
|||
2
Черный всадник
18.05.13
✎
17:28
|
(1) Потому что обновляется таблица задач, потом идёт запрос проверки к этой же таблице - это всё в одной транзакции.
|
|||
3
Fragster
гуру
18.05.13
✎
17:30
|
(2) ну и что? оно разве не по диапазонам блокируется?
|
|||
4
Черный всадник
18.05.13
✎
17:37
|
(3) Незнаю как это делает 1С, но факт в том что запросы выполняются строго последовательно, не важно какая точка маршрута и какой бизнеспроцесс. Это я смотрел в профайлере MSSQL. Конфа написана криво, поток бизнеспроцессов большой и это приводит к таймаутам блокировок и дэдлокам.
|
|||
5
Ursus maritimus
18.05.13
✎
17:38
|
использовать точки разделения и точки слияния не?
|
|||
6
Черный всадник
18.05.13
✎
17:39
|
(3) Я пошерстил документацию, но ничего не нашёл. Думал можно с помощью управляемых блокировок обойти. Единственный вариант видится в том, чтобы перевести на документы и РС статусов, поскольку задачи используются исключительно для статусов.
|
|||
7
Черный всадник
18.05.13
✎
17:41
|
(5) В смысле? Фактически задачи бизнеспроцесса - это статусы. Больше одной задачи на один бизнеспроцесс быть не должно иначе всё сломается.
|
|||
8
hhhh
18.05.13
✎
20:39
|
(7) а откуда такие сведения? Вообще-то бизнес-процесс может целый год выполняться, и в нем несколько тысяч задач, которые выполняются параллельно, последовательно, можно возвращаться назад и снова выполнять те же задачи. И в задаче может быть не один запрос, а 10 или 20.
|
|||
9
Ranger_83
18.05.13
✎
20:47
|
(0)посмотри как реализованы БП в типовых,например Документооборот.Там реализовано как последовательное прохождение,так и параллельное и даже смешанное
|
|||
10
Черный всадник
18.05.13
✎
21:01
|
(8) Так реализовано в данной самописке. Если будет две задачи у одного бизнеспроцесса, то вся логика прикладного решения разрушится.
(8)(9) Я не о самих бизнеспроцессах. Мне требуется, чтобы движение по точкам маршрута бизнеспроцесса №1 не мешало одновременному движению по точкам маршрута бизнеспроцесса №2. Т.е. если пойсать в отладчике задачу в самом конце ПриЗаписи, то ни одна другая задача не может выполниться. Вот именно это мне надо обойти. |
|||
11
Fragster
гуру
18.05.13
✎
21:17
|
а оно часом не файловое?
|
|||
12
Черный всадник
18.05.13
✎
21:26
|
(11) MSSQL 2008
|
|||
13
Лефмихалыч
18.05.13
✎
21:55
|
(0) вложенные БД юзай, они могут параллельно и независимо шуровать
|
|||
14
Лефмихалыч
18.05.13
✎
21:55
|
+(13) ПБ, а не БД
|
|||
15
Черный всадник
19.05.13
✎
00:26
|
(14) В самописке так и есть, но все они ссылаются на одну задачу. Вот думаю или на РС статусов переделать или вложенные БЛ перевести на другие задачи. Похоже по другому их будет не распараллелить :(
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |