Cron Aufgaben Sperren von Aufgaben aus anderen Gruppen

Dieser Artikel bietet eine Lösung für das Adobe Commerce-Problem mit der Cloud-Infrastruktur im Zusammenhang mit bestimmten langfristigen cron, die andere cron blockieren.

Betroffene Produkte und Versionen

  • Adobe Commerce auf Cloud-Infrastruktur Pro Planarchitektur
  • Vorher als Mai 2019 an Bord

Problem

Wenn Sie in Adobe Commerce für Cloud Manager komplexe cron (langfristige Aufgaben) haben, können diese andere Aufgaben für die Ausführung sperren. Beispielsweise indiziert die Aufgabe der Indexer ungültig gemachte Indexer neu. Es kann einige Stunden dauern, bis der Vorgang abgeschlossen ist, und es werden andere standardmäßige cron wie das Senden von E-Mails, das Generieren von Sitemaps, Kundenbenachrichtigungen und andere benutzerdefinierte Aufgaben gesperrt.

Symptome:

Die von cron Aufträgen ausgeführten Prozesse werden nicht ausgeführt. Beispielsweise werden Produktaktualisierungen stundenlang nicht angewendet oder Kunden melden, dass sie keine E-Mails erhalten.

Wenn Sie die cron_schedule Datenbanktabelle öffnen, werden die Aufträge mit dem Status missed angezeigt.

Ursache

Zuvor wurde in unserer Cloud-Umgebung der Jenkins-Server zum Ausführen von cron verwendet. Jenkins führt nur jeweils eine Instanz eines Auftrags aus. Infolgedessen wird jeweils nur ein bin/magento cron:run ausgeführt.

Lösung

  1. Wenden Sie sich an den Adobe CommerceSupport, um die selbstverwaltete crons aktivieren zu lassen.

  2. Bearbeiten Sie die .magento.app.yaml im Stammverzeichnis des Codes für Adobe Commerce in der Git. Folgendes hinzufügen:

    code language-yaml
      crons:
      cronrun:
      spec: "* * * * *"
      cmd: "php bin/magento cron:run"
    
  3. Speichern Sie die Datei und übertragen Sie Aktualisierungen auf die Staging- und Produktionsumgebungen (auf die gleiche Weise wie bei Integrationsumgebungen).

NOTE
Es ist nicht erforderlich, alte cron-Konfigurationen, in denen mehrere cron:run vorhanden sind, auf den neuen cron-Zeitplan zu übertragen. Die reguläre cron:run-Aufgabe, die wie oben beschrieben hinzugefügt wurde, ist ausreichend. Es ist jedoch erforderlich, Ihre benutzerdefinierten Aufträge zu übertragen, falls vorhanden.

Überprüfen Sie, ob Sie Self-Managed cron aktiviert haben (nur für Cloud Pro Staging und Produktion)

Um zu überprüfen, ob die selbst verwaltete cron aktiviert ist, führen Sie den crontab -l Befehl aus und beobachten Sie das Ergebnis:

  • Die selbstverwaltete cron ist aktiviert, wenn Sie die Aufgaben wie die folgenden sehen können:

    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
    
  • Die selbstverwaltete cron wird nicht aktiviert, wenn Sie die Aufgaben nicht sehen können und die Fehlermeldung Sie dürfen dieses Programm nicht verwenden erhalten.

NOTE
Der oben genannte Befehl zur Überprüfung, ob die selbst verwaltete cron aktiviert ist, gilt nicht für einen Starter-Plan und in der Entwicklungs-/Integrationsumgebung.

Verwandtes Lesen

recommendation-more-help
8bd06ef0-b3d5-4137-b74e-d7b00485808a