Intercambio de mensajes entre procesos

Traducido automáticamente de Deepl

4D v15 R5 introduce una nueva, simple y poderosa manera de intercambiar información entre procesos y también entre procesos y formularios. Esta funcionalidad se basa en un sistema de mensajería asíncrona que permite llamar a procesos y formularios y pedirles que ejecuten métodos con parámetros en su propio contexto.

El proceso trabajador

Un worker tiene una caja de mensajes. El proceso worker se crea en el primer uso y su proceso asociado también se lanza automáticamente en el primer uso. A diferencia del comando «New process«, un proceso worker permanece vivo tras el fin de la ejecución del método

Un trabajador puede llamarse a sí mismo para trabajar en trabajos grandes en trozos. Los trabajadores reducirán drásticamente la necesidad de variables entre procesos, así como la necesidad de semáforos para permitir el procesamiento asíncrono paralelo. Se requiere un worker para el multihilo preventivo. Sin embargo, un trabajador puede ser utilizado con procesos cooperativos, por lo que también es útil con entornos de 32 bits o interpretados.

Hay dos nuevos comandos disponibles:

  • «CALL WORKER» encapsula el nombre del método del proyecto y cualquier parámetro en un mensaje y lo publica en la caja de mensajes del trabajador.

CALL WORKER (nombre del proceso|número del proceso;nombre del método del proyecto;param1;…;paramN)

  • «KILL WORKER» envía un mensaje al trabajador especificado pidiéndole que olvide cualquier mensaje pendiente y que se suicide.

KILL WORKER (nada|nombre del proceso|número del proceso)

Una base de datos de ejemplo está disponible para demostrar la nueva funcionalidad:

Ejemplo de base de datos

Formulario de llamada

Ahora, cada formulario que se ejecuta en una ventana tiene una caja de mensajes. «CALL FORM» permite ejecutar un método de proyecto con argumentos en el contexto de un formulario mostrado en una ventana, independientemente del proceso que posea la ventana.

El comando hace que el uso de «CALL PROCESS» junto con las variables interproceso para pasar mensajes es obsoleto. «CALL FORM» puede ser utilizado dentro del contexto de un formulario para llamarse a sí mismo con el fin de apilar o fragmentar el trabajo. Esto elimina la necesidad de soluciones como SET TIMER(1). Aunque es extremadamente necesario para los procesos preventivos, también funciona con procesos cooperativos, con entornos de 32 bits o interpretados.

La sintaxis es:
CALL FORM (referencia de la ventana;nombre del método del proyecto;param1;…;paramN)

De forma similar a «CALL WORKER«, «CALL FORM» encapsula el nombre del método y los argumentos del comando en un mensaje que se publica en el cuadro de mensajes del formulario. El formulario ejecuta entonces el mensaje en su propio proceso.

Una base de datos de ejemplo está disponible para demostrar la nueva funcionalidad:

Ejemplo de base de datos

Para más detalles, consulte el manual de actualización de 4D v15 R5.

Vanessa Talbot
• Propietario de producto - Vanessa Talbot llegó al equipo de 4D Program en junio de 2014. Como Propietario de producto, está a cargo de escribir las historias de los usuarios y luego traducirlas a especificaciones funcionales. Su papel es también asegurarse de que la implementación de la funcionalidad entregada cumpla con las necesidades del cliente. Desde su llegada, ha trabajado en la definición de funcionalidades claves en 4D. Ha trabajado en la mayoría de las nuevas funcionalidades de multi hilo apropiativo y también en un tema muy complejo: la nueva arquitectura para la aplicación engined. Vanessa es licenciada por Telecom Saint-Etienne. Comenzó su carrera en el Instituto de Investigación Criminal como desarrolladora del departamento audiovisual. También ha trabajado en medios de comunicación y en el ámbito médico como experta en soporte técnico, producción y documentación de nuevas funcionalidades.