genexusextensions | | | |
fazzato | |
Hola Nicolás
Esta consulta tiene ya un par de semanas, por lo que de repente ya
resolviste esta situación de alguna otra forma. Dejo una propuesta por si
aún te sirve, o alguien más se encuentra con esta consulta.
Primero paso por la parte de la consulta que menciona tareas msbuild, ya
que es la más simple. El servicio de indexado de objetos está definido en
un package de UI, que no es cargado cuando se ejecutan tareas msbuild, por
lo que no deberías observar molestias por el indexer en ese contexto.
En la UI, cuando sí se carga el package del indexer, éste responde a
algunos eventos pensados de forma genérica para dar aviso entre extensiones
sobre tareas pesadas que requieran atención, y que las extensiones puedan
pausar tareas costosas que esté haciendo hasta que finalice la ejecución de
quien había solicitado pausar otras tareas costosas. Los eventos en
cuestión son los definidos por las
constantes ArchitectureEvents.BeforeBatchOperation
y ArchitectureEvents.AfterBatchOperation. El package del indexer escucha
estos eventos, para detener el indexado cuando algún otro package avisa que
precisa ejecutar un procesamiento pesado, y continúa indexando cuando
escucha el evento que terminó dicho procesamiento.
La forma más simple de disparar estos eventos, es usando la clase
BatchOperationManager, en particular si tu procesamiento está encapsulado
en cierta función, puedes utilizarlo de esta forma:
using (BatchOperationManager.ScopedBatchOperation(model)) { //
BeforeBatchOperation fires here
// here you can do the heavy task
} // AfterBatchOperation fires here
saludos
Federico Azzato
Development & Research
GeneXus™
*+598 2601 2082*
Av Italia 6201, Ed Los Pinos, P1
Montevideo, Uruguay
www.genexus.com
[image: GeneXus™]
On Thu, Aug 9, 2018 at 10:09 AM Nicolás Sanguinetti <
nsanguinetti19@gmail.com> |
|
|
|
|
Back to genexusextensions |
|