| 
	 | 
| 
			
			 | 
		#1 | 
| 
			
			 Banned 
		
			
	 | 
	
	
	
		
		
			
			
			Как сделать: пакетное задание в AX 2009 чаще 3 минут
			 
			
			В AX 2009 записи пакетного задания находятся в статусе исполнения в среднем часто больше 1-2 минут, хотя само задание исполняется за считанные секунды (формирование короткого файла). 
		
		
		
		
		
		
		
	Нужно 1,5 min <= t <= 2 min. Получается только 1,5 min <= t <= 3 min. при итерации каждую минуту. Такт обновления заданий, похоже, задается ядром: соответствующие процедуры хотя и написаны на X++, но не вызываются согласно перекрестным ссылкам из приложения. Что делать?  | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Административно никак. По крайней мере в четверке там жестко в коде период 3 минуты.
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
	Dynamics AX 4.0.2501.122 SP2, kernel 4.0.2163.0, MS SQL 2005  | 
| 
	
 | 
| 
			
			 | 
		#3 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Хотя у нас АХ 4.0, но возможно вам пригодится.  
		
		
		
		
		
		
		
	1) сделана простая модификация: возможность такой настройки пакетного задания, чтобы после завершения исполнения сразу происходил логофф из Аксапты 2) задания запускаются по расписанию из внешнего шедулера. После каждого пакета делается автоматический логофф, и запускается следующая сессия Аксапты со следующим пакетным заданием, которое потом также делает логофф, и так далее. Думаю, такой подход позволит запускать задания с любой периодичностью. PS Вопрос "зачем так сделали" не относится к заданной теме, поэтому без комментариев.  | 
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 NavAx 
		
			
	 | 
	
	
	
		
		
		
		 
			
			А не проще сделать 2 задания, вместо одного?
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#5 | 
| 
			
			 Banned 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Времена исполнения будут смещаться друг отностительно друга. Рано или поздно порог будет превышен. 
		
		
		
		
		
		
		
	Совет Zabr-а - хороший. Он сводится к том, чтобы тем или иным способом самостоятельно контролировать процесс выполнения. Посмотрим, что скажет Microsoft. На худой конец можно даже запускать мое задание синхронно, в транзакции.  | 
| 
	
 | 
| 
			
			 | 
		#6 | 
| 
			
			 NavAx 
		
			
	 | 
	
	
	
		
		
		
		 
			
			А если подкрутить #define.LoopCount(30) в BatchRun.do()?
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#7 | 
| 
			
			 Banned 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Я пробовал изменить на форме. Эффект - нулевой. Переход из статуса "Running" в "Waiting" выполняется в другой процедуре (serverGetNextTask/serverProcessFinishedJobs), которая вызывается, во-видимому, ядром.
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#8 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			А в МС писал? Чё говорят?
		 
		
		
		
		
		
		
			
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#9 | 
| 
			
			 Banned 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			... 
I will take a look deeply on your request, do a initial research and I will return to you. ...  
		 | 
| 
	
 | 
| 
			
			 | 
		#10 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Может быть написать свое пакетное задание, которое будет стартовать каждые 3 минуты (или реже), но само в свою очередь будет стартовать другой пакетник с нужной частотой. 
		
		
		
		
		
		
		
	Изврат конечно, но зато даст нужный результат и реализовать наверно будет несложно. А проще всего конечно сделать как Zabr предложил.  | 
| 
	
 | 
| 
			
			 | 
		#11 | 
| 
			
			 ---------------- 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Провел опыт.  
		
		
		
			Сделал классик, который только создает 1 запись в таблице и завершается. Запустил 5 раз в пакетном режиме с повторением через 1 мин по 10 циклов. Исходные интервалы между пакетами изначально были по несколько секунд. После первого цикла задания "сгруппировались" 3 задания стартовали в одно время и 2 через 1мин1сек. И такт между пакетными заданиями был 2мин2сек. Локальный вывод. У меня получился минимальный такт обновления статуса задания 1мин1сек. Возникает ощущение, что пакетному серверу надо 2 "такта" на то чтобы перевести задание на повторное исполнение. То есть если сделать задание длительностью 9мин, 10 сек, а периодичность поставить 10мин, то все-равно будет выполняться через 11мин Последний раз редактировалось Wamr; 02.11.2009 в 11:09. Причина: проектик добавил  | 
| 
	
 | 
| 
			
			 | 
		#12 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Сообщение от Wamr
			 
 
			Провел опыт.  
		
	Сделал классик, который только создает 1 запись в таблице и завершается. Запустил 5 раз в пакетном режиме с повторением через 1 мин по 10 циклов. Исходные интервалы между пакетами изначально были по несколько секунд. После первого цикла задания "сгруппировались" 3 задания стартовали в одно время и 2 через 1мин1сек. И такт между пакетными заданиями был 2мин2сек. Думал сам делать сегодня, но раз уже есть готовый ![]() Спасибо  | 
| 
	
 | 
| 
			
			 | 
		#13 | 
| 
			
			 Banned 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Увы, вот что заявляет MS: 
		
		
		
		
		
		
		
	Цитата: 
	
		
			I am afraid that this is a design limitation - lowest resolution is 1min and it seems that state are changed only in time of "batch cycle" - that is a reason why cycle is longer.
		
	 
 | 
| 
	
 | 
| 
			
			 | 
		#14 | 
| 
			
			 Мрачный тип 
		
			
	 | 
	
	
	
		
		
		
		 
			
			А казалось бы - забить на априорно неизвестное никому(даже великому и ужасному M$) время исполнения некоего пакета с априорно неизвестным функциональным наполнением и проверять при попытке запуска пакета факт наличия неоконченного выполнения этого же самого  пакета и запускать без проблем его в случае отсутствия наличия, либо, в случае таки наличия неоконченного, сдвигать выполнение текущей попытки на некий малый квант времени(определяемый некоей настройкой в БД) и по прошествию оного повторять попытку запуска. Но увы , дело Ленина живет и побеждает, M$ идет своим путем, не давать и не пущать - наше ффсё...
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
	Мы летаем, кружимся, нагоняем ужасы ...  | 
| 
	
 | 
| 
			
			 | 
		#15 | 
| 
			
			 Модератор 
		
			
	 | 
	
	
	
		
		
		
		
		
		
		
		
		
		
			 
				__________________ 
		
		
		
		
	-ТСЯ или -ТЬСЯ ?  | 
| 
	
 | 
| Теги | 
| ax2009, пакетная обработка, пакетное задание, частота | 
| 
	
	 | 
	
		
  |