Contao-Camp 2024
Ergebnis 1 bis 3 von 3

Thema: Command in einer Cron-Klasse ausführen

  1. #1
    Contao-Nutzer Avatar von agonyz
    Registriert seit
    10.09.2020.
    Beiträge
    36

    Standard Command in einer Cron-Klasse ausführen

    Guten Tag an alle,

    ich habe gerade irgendwie ein Brett vor dem Kopf.
    Ich habe eine Erweiterung geschrieben und möchte dem Benutzer die Möglichkeit geben, einen Cronjob einzurichten.

    Dafür habe ich eine Cron-Klasse angelegt:
    Code:
    <?php
    
    namespace Agonyz\Bundle\Cron;
    
    use Symfony\Component\Console\Application;
    use Symfony\Component\Console\Input\ArrayInput;
    use Symfony\Component\Console\Output\BufferedOutput;
    
    class PageSpeedInsightsCron
    {
        public function __invoke(): void
        {
            $application = new Application();
            $command = $application->get('app:my-command');
            
            $input = new ArrayInput();
            $output = new BufferedOutput();
    
            $command->run($input, $output);
        }
    }
    Nun möchte ich in diesem Cron ein von mir registriertes Command ausführen lassen.
    Leider erhalte ich immer folgende Meldung:
    The command "app:my-command" does not exist.
    Ich habe schon in einem anderen Command getestet und dort kann ich das gesuchte Command finden und problemlos ausführen.
    Muss ich hier noch etwas beachten/verändern, damit das hier so funktioniert?

    Oder wie wäre der eigentlich saubere Weg, um den Benutzer meiner Erweiterung eine einfache Möglichkeit zu geben, einen solchen Cronjob zu konfigurieren?
    Eigentlich möchte ich dem Benutzer nur eine einfache Möglichkeit geben, das Command "app:my-command" zu einer vom Benutzer gewünschten Zeit auszuführen.

    Vielen Dank und viele Grüße.

  2. #2
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.062
    Partner-ID
    10107

    Standard

    Gemeinsam genutzte Komponenten solltest du in einen eigenen Service auslagern. Dein Command nutzt dann diesen Service, sowie auch dein Cronjob.
    » sponsor me via GitHub or PayPal or Revolut

  3. #3
    Contao-Nutzer Avatar von agonyz
    Registriert seit
    10.09.2020.
    Beiträge
    36

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Gemeinsam genutzte Komponenten solltest du in einen eigenen Service auslagern. Dein Command nutzt dann diesen Service, sowie auch dein Cronjob.
    Manchmal kann es so einfach sein - Danke Spooky!
    Nun weiß ich auch, wie man es am saubersten macht.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •