|
![]() |
#1 |
Участник
|
Может подойти класс Tread. Поскольку Вам все равно нужно чистить таблицу вне зависимости выполнилась ли бизнесс-логика или нет, то конструкцию можно организовать на примере следующего джоба :
X++: static void Job620(Args _args) { Thread bpt; // поток для бизнесс-процесса Thread clt; // поток для удаления таблицы bpt = new Thread(); clt = new Thread(); bpt.setInputParm(connull()); // передача параметров потоку для бизнесс-процесса // запуск bpt.run( classnum( TestClassThread),staticmethodstr(TestClassThread,BuisnessProcess)); bpt.waitUntilSignaled(); // ожидание завершения БП clt.setInputParm(connull()); / clt.run( classnum( TestClassThread ), staticmethodstr(TestClassThread,ClearTable)); // чистка clt.waitUntilSignaled(); // ожидание завершения чистки } X++: bpt.waitUntilSignaled(); X++: server static void BuisnessProcess(Thread t) { container con = t.getInputParm(); ; // выполнение бизнесс процесса // выполнение бизнесс процесса throw error('Ошибка'); } X++: server static void ClearTable(Thread t) { container con = t.getInputParm(); ; // очистка таблицы // очистка таблицы info('ClearTable'); }
__________________
-Ты в гномиков веришь? -Нет. -А они в тебя верят, смотри, не подведи их. Последний раз редактировалось Pustik; 22.03.2012 в 18:01. |
|
|
За это сообщение автора поблагодарили: Андрей К. (1). |
![]() |
#2 |
Участник
|
|
|
![]() |
#3 |
Участник
|
Гарантия в том, что ошибка при выполнении первого потока (БЛ) не остановит выполнение второго (ЧТ).В моем примере я четко указал на Throw error();
Если речь идет о полном отрубании электричества, крахом сервера и т.д. во время выполнения БЛ, то тут я бы использовал не таблицу лога запусков, а журнал запусков, где бы порекомендовал воспользоваться советом Alexanderis.ua. - аналогия разноски журналов.
__________________
-Ты в гномиков веришь? -Нет. -А они в тебя верят, смотри, не подведи их. |
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|