Configure workers
Workers (or consumers) are a great way to off-load processing in the background to make an app as fast as possible. You can implement workers in Symfony smoothly thanks to the Messenger component.
To deploy a worker, add an entry under the workers section in your app configuration:
applications:
myapp:
workers:
mails:
commands:
start: symfony console messenger:consume --time-limit=60 --memory-limit=128MNote that the symfony binary is available when you use the Symfony
integration in your Upsun app configuration.
On Upsun, worker containers run the exact same code as the web container. The container image is built only once and deployed multiple times in its own container alongside the web container. The build hook and dependencies might not vary but, as these containers are independent, they can be customized the same way using common properties. The values defined for the main container are used as default values.
Tip
When the container is running in the context of a worker, the
SYMFONY_IS_WORKER environment variable is defined and set to 1.
The commands.start key is required.
It specifies the command you can use to launch the application worker.
If the command specified by the start key terminates, it’s restarted automatically.
For more information, see Workers.
Warning
Web and worker containers don’t share mounts targets. So you can’t share files between those containers using the filesystem. To share data between containers, use services.