Автоматический   последовательный  запуск  джобов 
	   
	     | 
   
 
	
		| Предыдущая тема :: Следующая тема   | 
	 
	
	
		| Автор | 
		Сообщение | 
	 
	
		nataly Участник со стажем
 
  Вступление в Клуб: 22.07.2011
  | 
		
			
				 Ср Авг 17, 2011 17:53   Автоматический   последовательный  запуск  джобов | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				Есть  ли возможность реализовать   запуск джобов  по условию? например пока  первые два не выполнятся успешно,  третий  ждет.
 
Как  только  закончились - пошел третий.
 
И  есть  ли вообще  что-нибудь из документации почитать по   теме  или пример  аналогичной  реализации. | 
			 
		  | 
	 
	
		  | 
	 
	
		Volod Эксперт
 
  Вступление в Клуб: 19.09.2007
  | 
		
			
				 Чт Авг 18, 2011 10:22    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				| Может проще, запускать джоб с коротким временным интервалом, проверять условие и запускать необходимую операцию. | 
			 
		  | 
	 
	
		  | 
	 
	
		Vovidez Профи
 
  Вступление в Клуб: 27.09.2007
  | 
		
			
				 Чт Авг 18, 2011 10:46   Re: Автоматический   последовательный  запуск  джобов | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				Как вариант при запуске операции джоба проверять, а не крутятся ли еще предыдущие 2 задания... Только аккуратнее нужно с настройкой времени запуска: 
 
1) 3-й джоб должен запускаться по расписанию немного позже первых двух. 
 
2) Периодичность запуска 2-х первых заданий не должна быть меньше, чем время выполнения 3-го...
 
 
3-й джоб, как вариант:
 
 
 	  | Код: | 	 		     var cnt integer := 0;
 
   while 1=1 loop
 
      begin
 
         select y(count (y)) in ::[TEXT_JOBS] where y.[SHORT_NAME] like '<Маска 1-х 2-х джобов>%' and nvl(y.[FAILURES],0) = 0 into cnt;
 
         if cnt > 0 then
 
            utils.sleep(10);
 
         else
 
            select y(count (y)) in ::[TEXT_JOBS] where y.[SHORT_NAME] like '<Маска 1-х 2-х джобов>%' and nvl(y.[FAILURES],0) = 1 into cnt;
 
            if cnt > 0 then
 
               debug_pipe('Были ошибки при запуске джобов!',0);
 
               debug_pipe('...Сами решайте, что с ними делать...,0);
 
            end if;
 
            debug_pipe('Окончание выполнения первых 2-х заданий...',0);
 
            exit;
 
         end if;
 
         commit;
 
      end;
 
   end loop;
 
 | 	  
 
 
Также можно посмотреть реализацию многопоточного завершения опердня для ИБСО/РБО. Там также есть возможность ожидания окончания других процессов перед запуском нужного... | 
			 
		  | 
	 
	
		  | 
	 
	
		nataly Участник со стажем
 
  Вступление в Клуб: 22.07.2011
  | 
		
			
				 Вт Авг 30, 2011 14:13    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				Спасибо, попробую  так
 
Не  завалялся  ли еще  у кого примерчик   программного создания  джоба? | 
			 
		  | 
	 
	
		  | 
	 
	
		Vovidez Профи
 
  Вступление в Клуб: 27.09.2007
  | 
		
			
				 Вт Авг 30, 2011 14:54    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				 	  | nataly пишет: | 	 		  Спасибо, попробую  так
 
Не  завалялся  ли еще  у кого примерчик   программного создания  джоба? | 	  
 
 
Смотрите опять процедуру завершения опер.дня в ИБСО или, например, механизм создания Бизнес-операций в РБО. Также можно посмотреть любую многопоточную конвертацию ИБСО/РБО - они как раз создают задания по расписанию и выполняются в несколько потоков. | 
			 
		  | 
	 
	
		  | 
	 
	
		 | 
	 
 
  
	 
	    
	   | 
	
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
  | 
   
 
		 |