it-swarm.com.de

Cron drupal 8 für mein Modul?

Ich mache ein Modul in drupal 8, ich möchte wissen, wie man eine Funktion jeden Monat automatisch ausführt. Ich denke, es wird mit Cron gemacht, aber ich kann es nur jede Woche machen Ich bearbeite es von meiner Funktion aus.

Ein modifiziertes Beispiel aus dem Modul cron_example. Dies betrifft nicht das Intervall, in dem die Cron-Aufgaben in Cron festgelegt werden.

Dies ist wichtig, da Sie wahrscheinlich früher oder später weitere Cron-Aufgaben mit unterschiedlichen Intervallanforderungen festlegen werden. Außerdem erfordern viele Systemaufgaben häufigere Cron-Läufe.

function cron_example_cron() {
  $interval = 30*24*60*60; // Approx a month of interval

  // We usually don't want to act every time cron runs (which could be every
  // minute) so keep a time for the next run in the site state.
  $next_execution = \Drupal::state()->get('cron_example.next_execution');
  $next_execution = !empty($next_execution) ? $next_execution : 0;
  if (REQUEST_TIME >= $next_execution) {
    // This is a silly example of a cron job.
    // It just makes it obvious that the job has run without
    // making any changes to your database.
    \Drupal::logger('cron_example')->notice('cron_example ran');
    if (\Drupal::state()->get('cron_example_show_status_message')) {
      drupal_set_message(t('cron_example executed at %time', ['%time' => date_iso8601(REQUEST_TIME)]));
      \Drupal::state()->set('cron_example_show_status_message', FALSE);
    }
    \Drupal::state()->set('cron_example.next_execution', REQUEST_TIME + $interval);
  }
}

Für einen genaueren Ansatz können Sie auch das Modul ltimate Cron verwenden, das eine genauere Steuerung für die Cron-Jobs bietet.

7
Anish Sheela

Die beste Möglichkeit, cron jeden Monat auszuführen, besteht darin, Ihrem crontab den folgenden Befehl hinzuzufügen.

0 0 1 * * wget -O - -q -t 1 http://CRON_URL

http: // CRON_URL wird durch eine URL ersetzt, die für jede Version unterschiedlich ist Drupal Version. Für D8 sieht es ungefähr so ​​aus wie http: // www. example.com/cron/ . Diese URL erhalten Sie unter Statusbericht - Berichtsverwaltung> Berichte> Status (/ admin/reports/status)

Weitere Informationen finden Sie unter https://www.drupal.org/docs/7/setting-up-cron-for-drupal/configuring-cron-jobs-using-the-cron-command

1
Ash U