AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 29.03.2017, 11:05   #1  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5803 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Есть вариант не переписывать отмену закрытия, оставить все почти как есть, но паковать отдельные пакетные задачи InventCostClosingCancel_WorkInvent в "пакеты", которые бы обрабатывались последовательно в рамках одного потока на пакетном сервере.
Где-то была публикация на тему того, как команда разработчиков, отвечающая за финансовый блок, перед выпуском AX 2009 задалась целью разнести 100 тысяч журналов ГК за приемлемое время. В ходе тестирования обнаружилось, что создавать отдельную пакетную задачу на разноску каждого журнала слишком неэффективно: на таком количестве задач пакетная инфраструктура начинает сама отжирать слишком много ресурсов, плюс многочисленные простои между запусками отдельных задач снижают общую производительность. В итоге придумали механизм "пакетирования":
  • выбирается критерий для определения размера "пакета" (для разноски журналов это может быть суммарное количество строк, для отмены закрытия склада - количество номенклатур);
  • при создании заданий обработки данных они нарезаются на "пакеты" примерно равного размера;
  • очередная пакетная задача создается на "пакет" в целом, а не на каждое отдельное задание обработки в нем, при этом для выполнения "пакета" используется небольшой класс-обертка;
  • при запуске с помощью пакетной инфраструктуры класс-обертка последовательно запускает задания обработки из своего "пакета".
Это позволяет, с одной стороны, снизить нагрузку на пакетную инфраструктуру, с другой, сократить время простоя между запусками отдельных заданий обработки, а с третьей, при желании - управлять количеством потоков пакетного сервера, которые будут задействованы, за счет изменения размера "пакетов". В приложении это все представлено классами BatchTaskBundle, BatchTaskBundleAssembler и их наследниками.

PS. На счет того, почему отмена закрытия реализована не так эффективно, как само закрытие склада: вероятно, руки не дошли, либо сценарий отмены был не самым приоритетным. В конце концов, на пресейлах можно козырять скоростью закрытия склада, но как-то странно выпячивать скорость отмены закрытия
За это сообщение автора поблагодарили: Logger (3).
Теги
inventory closing, inventsettlement, закрытие склада, пакетное задание

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Отмена закрытия склада. Оптимизация. vallys DAX: Программирование 20 23.08.2012 11:14
Denis Fedotenko: Себестоимость и закрытие склада Blog bot DAX: База знаний и проекты 44 29.03.2010 14:54
Отмена закрытия склада, или есть варианты ? CasperSKY DAX: Администрирование 2 12.11.2008 01:11
Отмена закрытия склада. AlexeyBP DAX: Функционал 2 16.01.2008 07:47
Отмена закрытия склада Penguin DAX: Функционал 4 18.05.2005 15:08

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 03:02.