Propiedad Workers
Puede definir un trabajador para que se ejecute independientemente de la instancia web sin una instancia de Nginx en ejecución; sin embargo, el trabajador utiliza el mismo almacenamiento de red utilizado por la aplicación Commerce. No es necesario configurar un servidor web en la instancia de trabajo (mediante Node.js o Go) porque el enrutador no puede dirigir solicitudes públicas al trabajador. Esto hace que la instancia de trabajo sea ideal para tareas en segundo plano o para ejecutar continuamente tareas que corren el riesgo de bloquear una implementación.
Configuración de un trabajador
Los trabajadores solo están disponibles para su uso con los entornos de ensayo y producción de Pro. Los entornos de integración profesional y de inicio pueden optar por usar la variable CRON_CONSUMERS_RUNNER.
Para configurar un trabajador en Ensayo o Producción profesional, envíe un vale de soporte técnico de Adobe Commerce e incluya la siguiente información:
- Identificador de proyecto
- ID de entorno
- Nombre del trabajador
- Comandos de inicio
Puede configurar un proceso por trabajador. Una configuración de trabajo básica y común en el archivo .magento.app.yaml
podría tener el siguiente aspecto:
workers:
queue:
commands:
start: |
php ./bin/magento queue:consumers:start commerce.eventing.event.publish
En este ejemplo se define un único trabajador denominado queue
, con un nivel de asignación de recursos pequeño (tamaño S), y se ejecuta el comando php ./bin/magento
al inicio. A continuación, el trabajador queue
se ejecuta en cada nodo como un proceso de trabajo. Si el comando se cierra, se reinicia automáticamente.
Comandos y anulaciones
La clave commands.start
es necesaria para iniciar comandos con la aplicación de trabajo. Puede utilizar cualquier comando shell válido, aunque es ideal utilizar el lenguaje de su aplicación. Si el comando especificado por la clave start
termina, se reinicia automáticamente.
deploy
y post_deploy
y los comandos crons
solo se ejecutan en el contenedor web, no en las instancias de trabajo.Herencia
Un trabajador hereda las definiciones de las propiedades size
, relationships
, access
, disk
y mount
, y variables
, a menos que se anulen explícitamente.
Las siguientes propiedades son las más utilizadas para anular la configuración de nivel superior:
size
: asigne menos recursos a un único proceso en segundo planovariables
: indicar a la aplicación que se ejecute de forma diferente
Intervalos y colas
Aunque cada trabajador se pone en cola detrás de otro, la siguiente configuración produce una separación consistente de dos segundos entre las marcas de tiempo del archivo var/time.txt
, independientemente del tiempo de espera de ocho segundos del código PHP:
workers:
time1:
commands:
start: 'php -r "sleep(8); echo time() . PHP_EOL;" >> var/time.txt& sleep 2'