Cron uppgifter låser uppgifter från andra grupper
Den här artikeln innehåller en lösning för Adobe Commerce om molninfrastruktursproblem som rör vissa cron-jobb som är under lång tid och som blockerar andra cron-jobb.
Berörda produkter och versioner
- Adobe Commerce om molninfrastruktur Pro planarkitektur
- Inbyggt tidigare än maj 2019
Problem
Om du har komplexa cron-uppgifter (långkörda uppgifter) i Adobe Commerce för molnet kan de låsa andra uppgifter för körning. Indexerarens uppgift indexerar till exempel om ogiltiga indexerare. Det kan ta några timmar att slutföra och det låser andra standardjobb för cron, som att skicka e-post, generera webbplatskartor, kundmeddelanden och andra anpassade uppgifter.
Symtomen:
Processerna som körs av cron jobb utförs inte. Produktuppdateringar gäller t.ex. inte timmar eller så rapporterar kunderna att de inte får några e-postmeddelanden.
När du öppnar databastabellen cron_schedule
ser du jobben med statusen missed
.
Orsak
Tidigare användes Jenkins-servern i vår molnmiljö för att köra cron jobb. Jenkins kör bara en instans av ett jobb åt gången. Därför körs bara en bin/magento cron:run
-process åt gången.
Lösning
-
Kontakta Adobe Commerce support om du vill att självhanterade crons ska aktiveras.
-
Redigera filen
.magento.app.yaml
i rotkatalogen för koden för Adobe Commerce i grenen Git. Lägg till följande:code language-yaml crons: cronrun: spec: "* * * * *" cmd: "php bin/magento cron:run"
-
Spara filen och skicka uppdateringar till miljö för förproduktion och produktion (på samma sätt som för integreringsmiljöer).
cron:run
till det nya cron-schemat. Den vanliga cron:run
-aktiviteten, som lagts till enligt ovan, räcker. Men du måste överföra dina anpassade jobb om du hade några.Kontrollera om du har självhanterade cron aktiverat (endast för molnPro Staging and Production)
Om du vill kontrollera om den självhanterade cron är aktiverad kör du kommandot crontab -l
och observerar resultatet:
-
Självhanterade cron är aktiverade om du kan se aktiviteterna, som följande:
code language-bash username@hostname:~$ crontab -l # Crontab is managed by the system, attempts to edit it directly will fail. SHELL=/etc/platform/username/cron-run MAILTO="" # m h dom mon dow job_name * * * * * cronrun
-
Den självhanterade cron är inte aktiverad om du inte kan se aktiviteterna och få felmeddelandet "du får inte använda det här programmet".
Relaterad läsning
- Konfigurera cron jobb i utvecklardokumentationen
- Metodtips för att ändra databastabeller i Commerce Implementeringspellbook