Цитата:
Сообщение от
axm2017
гляжу в класс TrvExpenseAsyncHelper
и наблюдаю массовое использование task -ов runasync (причем зачем то есть на форме и так) и прочее.
Как понимаю пришло на смену Thread и активно используется командой ретейла.
А есть какие то best practics и прочее по данной теме в Ax 365?
Если кто то использовал и заметил какие то особенности и может дать рекомендации буду рад.
Мы несколько раз использовали. В целом - вполне работоспособен. Единственная рекомендация - всегда передавать туда callback method для того чтобы оттуда можно было бы exception и infolog вытащить и пользователям выдать (даже если все отлажено и ошибок в коде нет). Просто в отличие от батчей async-сесии умирают без каких-либо сообщений в логах. Если хоть что-то на экран с помощью callback не выведено, будут жалобы от пользователей в стиле "У нас оно иногда почему-то не работает".
Вообще мне кажется что runasync хорош тогда, когда надо сделать какую-то мелкую операцию (со временем исполнения не более 5 секунд), причем желательно с минимальным запаздыванием по сравнению с основной операцией. Если операция дольше 5 секунд длится или если ее можно минуты 2-3 подождать, то проще батч запустить и вместо runAsync этому батчу какую-то state information через таблицу с очередью операций передать.