You can define zero or multiple work instances for each application. A worker instance runs as a container, independent from the web instance and without a running Nginx instance. Also, you do not need to set up a web server on the worker instance (using Node.js or Go) because the router cannot direct public requests to the worker.
A worker instance has the exact same code and compilation output as a web instance. The container image is built once and deployed multiple times if needed using the same
build hook and
dependencies. You can customize the container and allocated resources.
Use worker instances for background tasks including:
A basic, common worker configuration in the
.magento.app.yaml file could look like the following:
workers: queue: size: S commands: start: | php worker.php
This example defines a single worker named queue, with a “small” container, and runs the command
php worker.php on startup. If
worker.php exits, it is automatically restarted.