Имя: Пароль:
1C
1С v8
Параллельное движение по бизнеспроцессам
,
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) В самописке так и есть, но все они ссылаются на одну задачу. Вот думаю или на РС статусов переделать или вложенные БЛ перевести на другие задачи. Похоже по другому их будет не распараллелить :(