Geplante Aufgabe erstellen
hostware verwendet den standardmäßigen Aufgabenplaner des Laravel Frameworks. Schau dir die offizielle Dokumentation an!
Es wird empfohlen, nur Konsolenbefehle zu planen, da dies das Debuggen in manchen Fällen erleichtert. Wenn Du eine Funktion einer Helper-Klasse ausführen möchtest, erstelle bitte einen Command und plane dann den Command.
Mit dem Scheduler ist es nicht nötig, für jeden Command einen separaten Cronjob zu erstellen. Unten erfährst Du, wie Du Deinen Command im Task Scheduler registrierst
Geplanten hinzufügen
Um eine Aufgabe zum Scheduler Deines Moduls hinzuzufügen, öffne bitte die Klasse ServiceProvider Deines Moduls im Verzeichnis /Providers/ (in diesem Fall /Providers/DashservVpsServiceProvider.php)
Um die Planung von Aufgaben vorzubereiten, füge den folgenden Code innerhalb der Funktion boot() Deines ServiceProviders hinzu:
$this->callAfterResolving(Schedule::class, function (Schedule $schedule) {
});Jetzt kannst Du alles planen, so wie es in der offiziellen laravel-Dokumentation beschrieben ist. Wenn Du zum Beispiel einen benutzerdefinierten CLI-Command planen möchtest, würde die Funktion so aussehen:
$this->callAfterResolving(Schedule::class, function (Schedule $schedule) {
// As you can see, we execute the command every minute. Please use
// the auto completion of your IDE or view the official documentation
// for all possible intervals.
$schedule->command('dashservvps:checkInstallingProducts')->everyMinute();
});<?php
namespace custom\modules\DashservVps\Providers;
use App\Framework\Module\HwModuleServiceProvider;
use custom\modules\DashservVps\Console\CheckInstallingProducts;
use Illuminate\Console\Scheduling\Schedule;
class DashservVpsServiceProvider extends HwModuleServiceProvider {
public function boot() {
parent::boot();
$this->commands([
CheckInstallingProducts::class // <-- Add the class of your command here!
]);
}
}Deine geplante Aufgabe anzeigen
Um alle geplanten Aufgaben anzuzeigen und zu prüfen, ob Deine Aufgabe korrekt registriert wurde, kannst Du den folgenden Befehl ausführen, um alle Aufgaben anzuzeigen:
php artisan schedule:listDen Scheduler in einer lokalen Umgebung ausführen
Um den Scheduler in einer lokalen Umgebung ohne Cronjob auszuführen, führe einfach Folgendes aus:
php artisan schedule:workDeine geplante Aufgabe wird nicht angezeigt?
Bitte prüfe, ob Du Dein Modul über die hostware-Verwaltung installiert und aktiviert hast. Wenn das immer noch nicht funktioniert, prüfe bitte, ob der Name Deines Moduls in der Datei moduels_statuses.json im Stammverzeichnis von hostware aufgeführt ist. Wenn nicht, füge Dein Modul hinzu und leere den Cache mit php artisan cache:clear