Показать сообщение отдельно
Старый 15.04.2022, 12:37   #2  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,895 / 5650 (194) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Цитата:
Сообщение от axm2017 Посмотреть сообщение
гляжу в класс TrvExpenseAsyncHelper
и наблюдаю массовое использование task -ов runasync (причем зачем то есть на форме и так) и прочее.
Как понимаю пришло на смену Thread и активно используется командой ретейла.
А есть какие то best practics и прочее по данной теме в Ax 365?
Если кто то использовал и заметил какие то особенности и может дать рекомендации буду рад.
Мы несколько раз использовали. В целом - вполне работоспособен. Единственная рекомендация - всегда передавать туда callback method для того чтобы оттуда можно было бы exception и infolog вытащить и пользователям выдать (даже если все отлажено и ошибок в коде нет). Просто в отличие от батчей async-сесии умирают без каких-либо сообщений в логах. Если хоть что-то на экран с помощью callback не выведено, будут жалобы от пользователей в стиле "У нас оно иногда почему-то не работает".
Вообще мне кажется что runasync хорош тогда, когда надо сделать какую-то мелкую операцию (со временем исполнения не более 5 секунд), причем желательно с минимальным запаздыванием по сравнению с основной операцией. Если операция дольше 5 секунд длится или если ее можно минуты 2-3 подождать, то проще батч запустить и вместо runAsync этому батчу какую-то state information через таблицу с очередью операций передать.
За это сообщение автора поблагодарили: axm2017 (5), Logger (5), Vadik (1).