Egenskapen Arbetare
Du kan definiera en arbetare som ska köras oberoende av webbinstansen utan att Nginx-instansen körs, men arbetaren använder samma nätverkslagring som används av programmet Commerce. Du behöver inte konfigurera en webbserver på arbetarinstansen (med Node.js eller Go) eftersom routern inte kan dirigera offentliga begäranden till arbetaren. Detta gör arbetarinstansen idealisk för bakgrundsuppgifter eller för kontinuerliga aktiviteter som riskerar att blockera en distribution.
Konfigurera en arbetare
Arbetare är endast tillgängliga för användning i Pro Staging- och Production-miljöer. Pro-integrering och Starter-miljöer kan välja att använda variabeln CRON_CONSUMERS_RUNNER .
Skicka en Adobe Commerce-supportanmälan och inkludera följande information om du vill konfigurera en arbetare i Pro Staging eller Production:
- Projekt-ID
- Miljö-ID
- Arbetarnamn
- Starta kommandon
Du kan konfigurera en process per arbetare. En grundläggande, gemensam arbetskonfiguration i filen .magento.app.yaml
kan se ut så här:
workers:
queue:
commands:
start: |
php ./bin/magento queue:consumers:start commerce.eventing.event.publish
I det här exemplet definieras en enskild arbetare med namnet queue
, med en liten (storlek S) resursallokeringsnivå, och kör kommandot php ./bin/magento
vid start. Arbetaren queue
körs sedan på varje nod som en arbetsprocess. Om kommandot avslutas startas det om automatiskt.
Kommandon och åsidosättningar
Nyckeln commands.start
krävs för att starta kommandon med arbetarprogrammet. Du kan använda vilket giltigt kommando som helst, men det är idealiskt att använda språket i ditt program. Om det kommando som anges av tangenten start
avbryts, startas det om automatiskt.
deploy
, post_deploy
och crons
körs bara i webbbehållaren, inte i arbetarinstanser.Arv
Definitioner för egenskaperna size
, relationships
, access
, disk
och mount
samt variables
ärvs av en arbetare, såvida de inte uttryckligen åsidosätts.
Följande egenskaper används oftast för att åsidosätta inställningar på den översta nivån:
size
- tilldela färre resurser till en enda bakgrundsprocessvariables
- instruera programmet att köras annorlunda
Timing och köer
Även om varje arbetare köar bakom en annan skapar följande konfiguration en konsekvent tvåsekundersseparation i tidsstämplar i filen var/time.txt
, oavsett åtta-sekunders strömsparläge i PHP-koden:
workers:
time1:
commands:
start: 'php -r "sleep(8); echo time() . PHP_EOL;" >> var/time.txt& sleep 2'