Egenskapen Crons
Adobe Commerce använder egenskapen crons
för att schemalägga återkommande aktiviteter. Det är idealiskt för schemaläggning av en viss uppgift som ska köras vid vissa tidpunkter på dygnet. På grund av skrivskyddade miljöer kan endast ett kroniskt jobb köras åt gången på webbinstansen för Adobe Commerce i molninfrastrukturprojekt. Det är en god rutin att dela upp långvariga uppgifter i mindre uppgifter som ligger i kö. Du kan också skapa en worker-instans.
Adobe rekommenderar att du kör crons
som filsystemsägare. Kör inte crons
som root
eller som webbserveranvändare.
Den här konfigurationen skiljer sig från lokala distributioner av Adobe Commerce, som har flera standardcron-jobb. Se Konfigurera cron-jobb i Konfigurationsguiden.
Ställ in cron-jobb
Egenskapen crons
beskriver processer som aktiveras enligt ett schema. Varje jobb kräver ett namn och följande alternativ:
spec
- Det cron-uttryck som används för schemaläggning.cmd
- Det kommando som ska köras påstart
ochstop
.shutdown_timeout
—(Valfritt) Om ett cron-jobb avbryts är detta antalet sekunder som en SIGKILL-signal skickas för att stoppa jobbet eller processen. Standardvärdet är 10 sekunder.timeout
—(Valfritt) Den längsta tid ett cron-jobb kan köras före timeout. Standardvärdet är det högsta tillåtna värdet 86400 sekunder (24 timmar).
Som standard har varje Commerce-molnprojekt följande standardkonfiguration för crons
i filen .magento.app.yaml
:
crons:
cronrun:
spec: "* * * * *"
cmd: "php bin/magento cron:run"
Om ditt projekt kräver anpassade cron-jobb kan du lägga till dem i standardkonfigurationen för crons
. Se Skapa ett cron-jobb.
crontab
Adobe Commerce har lagt till ett konfigurationsalternativ för automatiska kroner endast i Pro-projekt för att ge stöd för självbetjäningskonfigurationen crons
i mellanlagrings- och produktionsmiljöerna. Om det här alternativet är aktiverat kan du använda crontab
för att granska cron-konfigurationen. Detta är inte tillgängligt med Starter-projekt.
Även om du kan använda crontab
för att granska konfigurationen i Pro-projekt, använder inte Adobe Commerce crontab
för att köra cron-jobb för webbplatser som distribueras i molninfrastrukturen.
Så här granskar du cron-konfigurationen i Pro-miljöer:
-
Använd SSH för att logga in på fjärrmiljön.
-
Visa en lista över schemalagda kroniprocesser.
code language-shell crontab -l
note note NOTE Om kommandot crontab -l
returnerar ettCommand not found
-fel (endast i Pro Staging- och Production-miljöer) måste du skicka en Adobe Commerce Support-biljett för att aktivera självbetjäningskonfigurationsalternativet för automatiska kopior i ditt projekt.
I följande exempel visas crontab
-utdata för en miljö som bara har standardkonfigurationen crons
:
username@hostname:~$ crontab -l
# Crontab is managed by the system, attempts to edit it directly will fail.
SHELL=/etc/platform/6fck2obu3244c/cron-run
MAILTO=""
# m h dom mon dow job_name
* * * * * cronrun
Bygg ett cron-jobb
Ett cron-jobb innehåller schema- och timingspecifikationen och det kommando som ska köras vid den schemalagda tidpunkten. För Starter-miljöer och Pro integration
-miljöer är det minsta intervallet en gång per fem minuter. För Pro Staging- och Production-miljöer är minimiintervallet en gång per minut. På Adobe Commerce i molninfrastruktur lägger du till anpassade cron-jobb i filen .magento.app.yaml
i avsnittet crons
. Det allmänna formatet är spec
för schemaläggning och cmd
för att ange det kommando eller anpassade skript som ska köras.
Specifikation
Adobe Commerce använder ett femvärdesuttryck för en crons
-specifikation (spec): * * * * *
- Minut (0 till 59) För alla Starter- och Pro-miljöer är den minsta frekvens som stöds för kronijobb fem minuter. Du kan behöva konfigurera inställningarna i din administratör.
- Timme (0 till 23)
- Dag i månaden (1 till 31)
- Månad (1 till 12)
- Veckodag (0 till 6) (söndag till lördag; 7 är också söndag på vissa system)
Några exempel:
00 */3 * * *
körs var tredje timme på den första minuten (12:00, 3:00, 6:00)20 */8 * * *
körs var 8:e timme vid minut 20 (12:20, 8:20, 4:20)00 00 * * *
körs en gång om dagen vid midnatt00 * * * 1
körs en gång i veckan på måndag vid midnatt.
crons
-tid som anges i filen .magento.app.yaml
baseras på serverns tidszon, inte på den tidszon som anges i lagringskonfigurationsvärdena i databasen.När du bestämmer schemaläggningen bör du tänka på hur lång tid det tar att slutföra uppgiften. Om du till exempel kör ett jobb var tredje timme och aktiviteten tar 40 minuter att slutföra kan du ändra den schemalagda tidpunkten.
Kommando
cmd
anger det kommando eller anpassade skript som ska köras. Kommandots skriptformat kan innehålla följande:
<path-to-php-binary> <project-dir>/<script-command>
Exempel:
crons:
spec: "00 */8 * * *"
cmd: "/usr/bin/php /app/abc123edf890/bin/magento export:start catalog_category_product"
I detta exempel är <path-to-php-binary>
/usr/bin/php
. Installationskatalogen, som innehåller projekt-ID:t, är /app/abc123edf890/bin/magento
och skriptåtgärden är export:start catalog_category_product
.
Lägg till anpassade cron-jobb i ditt projekt
På Adobe Commerce på molninfrastrukturplattformen kan du lägga till anpassningar i avsnittet crons
i filen .magento.app.yaml
.
integration
-miljöer är det minsta intervallet en gång per fem minuter. För Pro Staging- och Production-miljöer är minimiintervallet en gång per minut. Du kan inte konfigurera mer frekventa intervall än standardminimumen.I Adobe Commerce Pro-projekt måste funktionen för automatiska kroner vara aktiverad i ditt projekt innan du kan lägga till anpassade kron-jobb i mellanlagrings- och produktionsmiljöer med hjälp av filen .magento.app.yaml
. Om den här funktionen inte är aktiverad kan du skicka en Adobe Commerce-supportanmälan om du vill aktivera automatiska korrigeringar.
Så här lägger du till anpassade cron-jobb:
-
Redigera filen
.magento.app.yaml
i Adobe Commerce/app
-katalogen i den lokala utvecklingsmiljön. -
I avsnittet
crons
lägger du till din anpassning med följande format:code language-yaml crons: <cron_name_1>: spec: "<schedule_time>" cmd: "<schedule_command>" <cron_name_2>: spec: "<schedule_time>" cmd: "<schedule_command>"
I följande exempel exporterar jobbet
productcatalog
produktkatalogen var 8:e timme, 20:e minut efter timmen.code language-yaml crons: magento: spec: '* * * * *' cmd: 'php bin/magento cron:run' productcatalog: spec: '20 */8 * * *' cmd: 'bin/magento export:start catalog_product_category'
-
Lägg till, implementera och push-ändra kod.
code language-bash git add .magento.app.yaml && git commit -m "cron config updates" && git push origin <branch-name>
Uppdatera cron-jobb
Om du vill lägga till, ta bort eller uppdatera ett anpassat jobb ändrar du konfigurationen i avsnittet crons
i filen .magento.app.yaml
. Testa sedan uppdateringarna i fjärrmiljön integration
innan du överför ändringarna till mellanlagrings- och produktionsmiljöerna.
Inaktivera cron-jobb
Du kan inaktivera cron-jobb manuellt innan du slutför underhållsåtgärder som att indexera om eller rensa cachen för att förhindra prestandaproblem. Du kan använda kommandot ece-tools
CLI cron:disable
för att inaktivera alla cron-jobb och stoppa alla aktiva cron-processer.
Så här inaktiverar du cron-jobb:
-
Byt till din projektkatalog på din lokala arbetsstation.
-
Använd SSH för att logga in i fjärrmiljön.
code language-bash magento-cloud ssh
-
Inaktivera cron-jobb och stoppa aktiva cron-processer.
code language-shell ./vendor/bin/ece-tools cron:disable
-
När du har slutfört nödvändiga underhållsåtgärder måste du aktivera cron-jobben igen.
code language-shell ./vendor/bin/ece-tools cron:enable
Felsökning av cron-jobb
Adobe har uppdaterat Adobe Commerce om molninfrastrukturspaket för att optimera kundbearbetningen på Adobe Commerce om molninfrastrukturplattformen och för att åtgärda kronrelaterade problem. Om du får problem med seriebearbetningen bör du kontrollera att projektet använder den senaste versionen av paketet ece-tools
. Se Uppdatera ECE-verktyg.
Du kan granska information om cron processing i loggfiler på programnivå för varje miljö. Se Programloggar.
Se följande Adobe Commerce supportartiklar för hjälp med felsökning av kronrelaterade problem: