Está en la página 1de 1

Worker

Un proceso Worker es una forma sencilla y poderosa de intercambiar información entre procesos. Esta
funcionalidad se basa en un sistema de mensajería asíncrono que permite a los procesos y formularios ser
llamados y se les pide ejecutar métodos con parámetros en su propio contexto.
Nota: un método de proyecto también puede ejecutarse con los parámetros en el contexto de todo formulario
utilizando el comando CALL FORM.
Un worker puede ser "contratado" por cualquier proceso (utilizando el comando CALL WORKER) para
ejecutar los métodos de proyecto con parámetros en su propio contexto, permitiendo así el acceso a
información compartida.
Esta funcionalidad responde a las siguientes necesidades en materia de comunicación entre procesos en 4D:

 Ya que son compatibles con ambos procesos cooperativos y apropiativos, son la solución perfecta
para la comunicación entre procesos en los procesos apropiativos (las variables interproceso no
están permitidas en los procesos apropiativos).
 Ofrecen una alternativa sencilla a los semáforos, que puede ser engorrosos de definir y difíciles de
usar (ver Sobre los semáforos).

Nota: aunque se han diseñado principalmente para la comunicación entre procesos en el contexto de los
procesos apropiativos (sólo en versiones 64 bits), CALL WORKER y CALL FORM están disponibles en
versiones 32 bits y se pueden utilizar con los procesos cooperativos.

Utilizar workers  

Un worker se utiliza para pedir a un proceso ejecutar los métodos proyecto. Un worker está hecho de:

 un nombre único (*), también se utiliza para nombrar su proceso asociado


 un proceso asociado, que puede o no puede existir en un momento dado
 un buzón de mensajes
 un método de inicio (opcional)

(*) Advertencia: los nombres de los workers son sensibles a las mayúsculas y minúsculas ("myWorker" y
"MyWorker" pueden existir simultáneamente).
Se le pide a un worker ejecutar un método proyecto mediante una llamada al comando CALL WORKER.
El worker y su buzón de mensajes se crean en el primer uso; su proceso asociado también se ejecuta
automáticamente en el primer uso. Si el proceso worker muere luego, el buzón de mensajes permanece
abierto y cualquier nuevo mensaje en el buzón iniciará un nuevo proceso worker .

También podría gustarte