|
01.04.2011, 05:56 | #1 |
Участник
|
Цитата:
вы джобик на клиенте запускали или на сервере? чтобы запустить джобик на сервере, нужно создать menuItem, в нем указать ссылку на джобик и свойство RunOn = Server. Цитата:
Цитата:
принципиальное отличие класса InventUnusedDimCleanUp от джобика: = для каждого тестируемого поля в каждой тестируемой таблице класс делает один запрос по всем записям InventDim; = для каждого тестируемого поля в каждой тестируемой таблице джобик делает запросы по каждому InventDim. другие отличия скорее технологического характера: = в классе отдельный connection - круто = в классе используется более быстрый exist join, а в джобике count есть и спорные "усовершенствования": = в классе очень агрессивно делаются четыре skip'а (метод deleteUnusedInventDimIds). Я побоялся вставлять такие skip'ы в публичный ФАК - мало ли что у людей случится. Я думал, что знающие люди догадаются их вставить по месту и в зависимости от того, как у них накастомизировано. А незнающим - отсутствие skip'ов не навредит (а всего лишь замедлит работу). = класс сейчас невозможно запустить "частями" и параллельно с работой остальных пользователей. Сейчас, в эпоху отсутствия блокировок на чтение это кажется полной фигней. Тогда, когда создавался джобик было важно не блокировать на чтение на слишком долго. Поэтому типичная доработка джобика выглядела так: цикл по InventDim прекращался, если было удалено 10, 20, 50, 100 inventDim'ов. а сам джобик вешался в пакетное задание и выполнял постоянный мониторинг и чистку (обычно вместе с чисткой InventSum(!)). при этом джобик не сильно нагружал систему. ну, и конечно, джобики по-умолчанию запускаются на клиенте. чтобы джобик запустился на сервере, его нужно запускать через menuItem думал, что очевидная вещь. оказывается, ошибался. Спасибо, дополнил ФАК. |
|
Теги |
inventdim, inventsum, складская аналитика, удаление |
|
|