


Eine ausführliche Erklärung der Warteschlangen und der Aufgabenplanung in Laravel6
(1) Warteschlangenimplementierung
In Laravel müssen wir nur die Warteschlange bedienen, um dies zu erreichen. Vor der Implementierung müssen wir eine einfache Konfiguration durchführen: config/ So ändern Sie queue.php, bitte schauen Sie in der offiziellen Dokumentation nach. Ich werde hier nicht im Detail darauf eingehen. <code>config/queue.php
进行修改,具体查看官方文档,这里我不进行详细说明,下面我们直接进入正题。
首先,通过执行
php artisan make:job 任务类名称
我们可以实现一个队列任务,执行该命令后,将会在app目录下生成Jobs目录并创建一个新的任务类,该任务类会自动继承IlluminateContractsQueueShouldQueue
接口,我们的队列会调用该任务类的handle方法,因此我们只需要在handle里面去实现我们具体的业务逻辑,就可以轻松的实现任务类。而此时,我们这是对我们任务类进行处理,那我们该怎么去分配任务进行处理呢?-
在laravel中,任务的分发,也只需要通过简单的已实现的方法进行任务分配,我们只需要将任务指定对应的队列进行分发处理,具体的实现方式只需要以下简单的几行代码,便可以实现任务分发。
//任务指定到对应的队列 $job = (new TestQueue())->onQueue('队列名称'); //分发任务 dispatch($job);
Nach dem Login kopieren 实现的队列的分发之后,我们通过运行
php artisan queue:work
队列处理器,该处理器便会对分发到队列里的任务进行处理,它会一直运行直到它被手动停止或终端关闭。需要注意的是,由于队列处理器是作为一个常驻进程并且在内存中保存着已经启动的应用状态,当我们修改对应的代码时,我们需要重启队列处理器才会载入修改后的代码逻辑。所以当我们对相应的任务类进行修改时,我们需要重启以保证正确性。Supervisor 配置,这里官方文档讲得挺明白的,我就没必要在复述一次官方文档传送门
(二)任务调度
这里我直接引用官方文档的话语,简明易懂。
过去,你可能需要在服务器上为每一个调度任务去创建 Cron 入口。但是这种方式很快会变得不友好,因为这些任务调度不在源代码中,并且你每次都需要通过 SSH 链接登录到服务器中才能增加 Cron 入口。
Laravel 命令行调度器允许你在 Laravel 中对命令调度进行清晰流畅的定义。且使用这个任务调度器时,你只需要在你的服务器上创建单个 Cron 入口。你的任务调度在 app/Console/Kernel.php 的 schedule 方法中进行定义。
任务调度定义。在laravel官方文档中,我们更常用的是任务Artisan命令调度和队列调度。
//artisan命令调度 $schedule->command('emails:send Taylor --force')->daily(); //队列调度 $schedule->job(new Heartbeat)->everyFiveMinutes(); // 分发任务到「heartbeats」队列... $schedule->job(new Heartbeat, 'heartbeats')->everyFiveMinutes();
Nach dem Login kopieren-
任务调用频率,如上步骤的
daily()
、everyFiveMinutes()
- Zuerst können wir durch Ausführen von
php artisan make:job task class name
eine Warteschlangenaufgabe implementieren. Nach der Ausführung dieses Befehls wird das Jobs-Verzeichnis in der App generiert und erstellt Verzeichnis Eine neue Task-Klasse, die automatisch die SchnittstelleIlluminateContractsQueueShouldQueue> erbt. Unsere Warteschlange ruft die Handle-Methode der Task-Klasse auf, sodass wir nur unsere spezifische Geschäftslogik in den Handle-Task-Klassen implementieren können einfach umgesetzt werden. Zu diesem Zeitpunkt verarbeiten wir unsere Aufgabenklasse. Wie sollten wir also Aufgaben für die Verarbeitung zuweisen? <br><img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/000/020/9fe3bdf2dc1b025b963d722e3917fd6e-0.png" class="lazy" alt="Bildbeschreibung hier einfügen">🎜
- 🎜In Laravel muss die Aufgabenverteilung nur über einfache implementierte Methoden erfolgen. Wir müssen nur die entsprechende Warteschlange für die zu verteilende Aufgabe angeben. Die spezifische Implementierungsmethode erfordert nur die folgenden einfachen Schritte: Mit nur einer Zeile Code, Aufgabenverteilung kann erreicht werden. 🎜rrreee
- 🎜Nachdem die Warteschlange verteilt wurde, führen wir den Warteschlangenprozessor
php artisan queue:work
aus, der die an die Warteschlange verteilten Aufgaben verarbeitet manuell gestoppt oder das Terminal geschlossen wird. Es ist zu beachten, dass wir den Warteschlangenprozessor neu starten müssen, um die geänderte Codelogik zu laden, da der Warteschlangenprozessor ein residenter Prozess ist und den Status der gestarteten Anwendung im Speicher speichert. Wenn wir also die entsprechende Aufgabenklasse ändern, müssen wir neu starten, um die Richtigkeit sicherzustellen. 🎜 - 🎜Supervisor-Konfiguration, das offizielle Dokument hier erklärt es sehr klar, es besteht für mich keine Notwendigkeit, das offizielle Dokumentenportal zu wiederholen🎜
🎜In der Vergangenheit mussten Sie möglicherweise für jede geplante Aufgabe auf dem Server einen Cron-Eintrag erstellen. Dieser Ansatz wird jedoch schnell unfreundlich, da diese Aufgabenplaner nicht im Quellcode enthalten sind und Sie sich jedes Mal über einen SSH-Link beim Server anmelden müssen, um einen Cron-Eintrag hinzuzufügen.
Mit dem Laravel-Befehlszeilenplaner können Sie die Befehlsplanung in Laravel klar und reibungslos definieren. Und wenn Sie diesen Taskplaner verwenden, müssen Sie nur einen einzigen Cron-Eintrag auf Ihrem Server erstellen. Ihr Aufgabenplan wird in der Zeitplanmethode von app/Console/Kernel.php definiert. 🎜- 🎜Aufgabenplanungsdefinition. In der offiziellen Laravel-Dokumentation verwenden wir häufiger die Task-Artisan-Befehlsplanung und die Warteschlangenplanung. 🎜rrreee
- 🎜Aufgabenaufrufhäufigkeit, wie z. B.
daily()
,everyFiveMinutes()
usw. in den obigen Schritten, begrenzen alle die Aufrufhäufigkeit Es ist im wahrsten Sinne des Wortes nicht schwer zu verstehen, dass es einmal pro Minute oder jeden Tag aufgerufen werden soll. Der konkrete Aufruf lautet wie folgt (um die Länge zusammenzufassen). Weitere Informationen finden Sie auch in der offiziellen Dokumentation. 🎜
Methoden 描 beschreibe-& gt; Jede Minute eine Aufgabe ->everyTenMinutes(); -> ;everyFifteenMinutes (); ->everyThirtyMinutes(); ->stündlich(); ->hourlyAt(17); ->daily(); ->weekly(); ->weeklyOn(1, '8:00'); ->monatlich(); ->monatlichOn(4, '15:00'); -> ;vierteljährlich(); ->jährlich(); ->timezone('America/New_York'); . Tatsächlich gibt es nicht viel zu besprechen, aber diese beiden sind normalerweise für unsere Projekte von entscheidender Bedeutung. Die offiziellen Dokumente sind zu umständlich und unnötig, daher werde ich kurz auf die häufig verwendeten Dokumente eingehen. Mit der Methode hat Laravel diese allgemeinen Vorgänge gekapselt und so viele Probleme reduziert. Wenn Sie daran interessiert sind, die Implementierungslogik zu verstehen, sollten Sie zumindest wissen, wie man sie verwendet.(3) Zusammenfassung Verwandte Empfehlungen: Die neuesten fünf Laravel-Video-Tutorials - Zuerst können wir durch Ausführen von
Das obige ist der detaillierte Inhalt vonEine ausführliche Erklärung der Warteschlangen und der Aufgabenplanung in Laravel6. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Dieser Artikel führt dazu, dass robuste Laravel -Rastful -APIs aufgebaut werden. Es deckt Projekt -Setup, Ressourcenverwaltung, Datenbankinteraktionen, Serialisierung, Authentifizierung, Autorisierung, Testen und Best Practices für die wichtige Sicherheitssicherheit ab. Skalierbarkeit Chall

In diesem Artikel werden die Authentifizierung und Autorisierung von OAuth 2.0 in Laravel implementiert. Es umfasst die Verwendung von Paketen wie League/OATH2-Server oder providerspezifischer Lösungen, wobei die Datenbank-Setup, die Client-Registrierung und die Autorisierungsserverkonfigurus betont werden

In dem Artikel wird das Erstellen und Anpassen wiederverwendbarer UI -Elemente in Laravel mithilfe von Komponenten ermittelt, die Best Practices für die Organisation anbieten und Vorschläge für Verbesserungspakete vorschlagen.

In dem Artikel werden Best Practices für die Bereitstellung von Laravel in Cloud-nativen Umgebungen erörtert und sich auf Skalierbarkeit, Zuverlässigkeit und Sicherheit konzentriert. Zu den wichtigsten Problemen gehören Containerisierung, Microservices, staatenlose Design- und Optimierungsstrategien.

In dem Artikel wird das Erstellen und Verwenden von benutzerdefinierten Validierungsregeln in Laravel erläutert und bietet Schritte zur Definition und Implementierung. Es zeigt Vorteile wie Wiederverwendbarkeit und Spezifität und bietet Methoden zur Erweiterung des Laravel -Validierungssystems.

In dem Artikel wird das Erstellen und Verwenden benutzerdefinierter Blade -Richtlinien in Laravel erläutert, um die Vorlagen zu verbessern. Es umfasst die Definition von Direktiven, die Verwendung in Vorlagen und die Verwaltung in großen Projekten, um Vorteile wie eine verbesserte Wiederverwendbarkeit von Code und R hervorzuheben

Bei der Auswahl eines PHP -Frameworks gehören Laravel und Symfony zu den beliebtesten und am häufigsten verwendeten Optionen. Jedes Rahmen bringt seine eigene Philosophie, Merkmale und Stärken auf den Tisch, wodurch sie für verschiedene Projekte und Anwendungsfälle geeignet sind

In diesem Artikel wird in Laravel optimale Dateien -Upload- und Cloud -Speicherstrategien in Laravel untersucht. Es untersucht lokale Speicher- und Cloud -Anbieter (AWS S3, Google Cloud, Azure, Digitalocean), die Sicherheit (Validierung, Bereinigung, HTTPS) und Leistungsopti betonen
