Etiqueta

15 julio 2014

SQL en modo multitarea y multi-hilo (Parte 2 de 8)

Métodos de los objetos “SQL Worker”
Método Descripción
$init() $init(ParamRow). Inicia o restablece un objeto “worker” preparándolo para realizar una tarea.*
$start() Ejecuta una tarea o “worker” como un subproceso (ejecución en segundo plano, tenga en cuenta que el programa continuará su ejecución no se producirá ningún tipo de bloqueo o detención)*
$run() Ejecuta una tarea en modo “único-hilo” (se detienen todos los procesos a la espera de una respuesta). Este método se aporta sólo con la finalidad de que pueda realizar pruebas de ejecución.*
$cancel() Cancela una tarea o “worker”, que está siendo ejecutada como subproceso (en segundo plano).*
$sessionref() $sessionref(ObjectRef). Devuelve la referencia del objeto de sesión, al que pertenece el “worker” en uso.*
$completed() Es ejecutado por el propio “worker”, tras concluirse su ejecución.
$cancelled() Es invocado en el caso de que se produzca la cancelación de un “worker” que se estaba ejecutándose en segundo plano.
*Si es ejecutado con éxito devolverá kTrue o en caso contrario kFalse.


Propiedades de los objetos “SQL Worker”
Propiedad Descripción
$cancelifrunning Si es kFalse (por defecto), se concluirá la ejecución de los “worker” que hayan podido quedar huérfanos. Si es kTrue, se informará sobre su estado.
$waitforcomplete Si es kTrue (por defecto), el “Interface Object” se mantiene a la espera de que el “worker” en ejecución termine, antes de habilitarse para la ejecución de otro. Si es kFalse, el “worker” en ejecución es liberado, permitiéndose la ejecución de otro en su lugar.
$state Devuelve el estado actual del “worker”, el cual podrá ser: kWorkerStateCancelled, kWorkerStateClear, kWorkerStateComplete, kWorkerStateError o kWorkerStateRunning.
$errorcode Contiene el código de error. (Si se produce).
$errortext Contiene el texto del error. (Si se produce).
$threadcount Contiene el número de subprocesos “worker” que están actualmente bajo supervisión del “Thread Timer Object”.  (Control multi-hilo)

No hay comentarios: