Heim PHP-Framework Denken Sie an PHP Werden Sie thinkphp-queue in ThinkPHP5 verwenden?

Werden Sie thinkphp-queue in ThinkPHP5 verwenden?

Jul 17, 2020 pm 01:23 PM
thinkphp5

Die folgende Tutorial-Kolumne des thinkphp-Frameworks wird Ihnen die Verwendung von thinkphp-queue in ThinkPHP5 vorstellen. Ich hoffe, dass es für Freunde in Not hilfreich sein wird!

Werden Sie thinkphp-queue in ThinkPHP5 verwenden?

Kürzlich erhielt der Redakteur eine Nachricht von Freunden in der Gruppe, die nicht wissen, wie man PHP-Queue verwendet, wenn man das ThinkPHP5.0-Framework verwendet (es ist wirklich peinlich, dazu gibt es im Internet viele Kommentare (Tutorial). Haha, es spielt keine Rolle, wenn Sie nicht darauf verweisen möchten. Lassen Sie mich es im Detail durchgehen ~~ Was ist eine Warteschlange? Was löst die Warteschlange? Welche Szenarien gibt es für Warteschlangen? ... usw. Entwickler sollten diese Probleme zunächst selbst verstehen. Darüber hinaus werden in diesem Fall nur bestimmte Vorgänge im ThinkPHP-Framework ausgeführt.

1. thinkphp-queue installieren

Es wird empfohlen, Composer für die Installation zu verwenden, in das Stammverzeichnis des Projekts zu wechseln und Folgendes auszuführen: composer require topthink/think-queue

2. Konfigurieren Sie die Speicherumgebung der Nachrichtenwarteschlange

Die Konfigurationsdatei befindet sich in applicationextraqueue.php, wie in der Abbildung gezeigt: Werden Sie thinkphp-queue in ThinkPHP5 verwenden?

Verwendung Wenn die Redis-Umgebung nicht installiert ist, installieren Sie sie ganz einfach selbst, oder Sie können auch andere Treibertypen verwenden, wie in der Abbildung gezeigt: Werden Sie thinkphp-queue in ThinkPHP5 verwenden?

3 von Aufgaben

Wir erstellen eine benannte Index.php-Datei unter dem Indexmodul. Die Methode der Warteschlange (muss so sein? Natürlich nicht, dieses Tutorial ist nur ein Beispiel, Sie können ein neues Modul erstellen und das Methodenname kann anders sein), wie in der Abbildung gezeigt:

Werden Sie thinkphp-queue in ThinkPHP5 verwenden?

Werden Sie thinkphp-queue in ThinkPHP5 verwenden?

4. Aufgabennachrichtenverbrauch und Löschverarbeitung

Wir erstellen eine Jobdatei unter dem Indexmodul, die zur Verarbeitung des Verbrauchsmodus verwendet wird, wie in der Abbildung gezeigt: Werden Sie thinkphp-queue in ThinkPHP5 verwenden?

Erstellen Sie unter der Demo-Klasse eine Feuermethode, die als Methode bezeichnet wird standardmäßig von der Nachrichtenwarteschlange gesendet. Wie im Bild gezeigt:

Werden Sie thinkphp-queue in ThinkPHP5 verwenden?

Das Obige ist die Erstellung der abgeschlossenen Aufgabe – „Push--“Verbrauch.
Führen Sie im Browser oder Terminal unsere Methode index/queue.html aus, um die Erstellung und den Push abzuschließen. Sie können sich auf den Befehl beziehen und zum Stammverzeichnis des Projekts im Terminal wechseln:

5. Überwachen Sie Aufgaben und führen Sie

php think queue:listen
php think queue:work –daemon(不加–daemon为执行单个任务)
Nach dem Login kopieren

aus. Für bestimmte optionale Parameter können Sie den Befehl „–help“ eingeben, der mit verwendet werden kann Supervisor, um sicherzustellen, dass der Prozess resident ist

1.1 Befehlsmodus

queue:subscribe command [As vom 15.02.2017 hat der Autor diesen Modus noch nicht implementiert, überspringen]
  • queue:work command
  • work command: Dieser Befehl startet einen Arbeitsprozess um die Nachrichtenwarteschlange zu verarbeiten.

    php think queue:work --queue helloJobQueue
    Nach dem Login kopieren

    queue:listen-Befehl
  • listen-Befehl: Dieser Befehl erstellt einen übergeordneten Listen-Prozess, und dann erstellt der übergeordnete Prozess eine Arbeit durch

    Das Kind Der Prozess verwaltet die Nachrichtenwarteschlange und begrenzt die Ausführungszeit des Arbeitsprozesses.

    php think queue:listen --queue helloJobQueue
    Nach dem Login kopieren

    proc_open(‘php think queue:work’)

2.2 Befehlszeilenparameter

Arbeitsmodus
    php think queue:work \
    --daemon            //是否循环执行,如果不加该参数,则该命令处理完下一个消息就退出
    --queue  helloJobQueue  //要处理的队列的名称
    --delay  0 \        //如果本次任务执行抛出异常且任务未被删除时,设置其下次执行前延迟多少秒,默认为0
    --force  \          //系统处于维护状态时是否仍然处理任务,并未找到相关说明
    --memory 128 \      //该进程允许使用的内存上限,以 M 为单位
    --sleep  3 \        //如果队列中无任务,则sleep多少秒后重新检查(work+daemon模式)或者退出(listen或非daemon模式)
    --tries  2          //如果任务已经超过尝试次数上限,则触发‘任务尝试次数超限’事件,默认为0
    Nach dem Login kopieren
  • Listen-Modus
  • php think queue:listen \
    --queue  helloJobQueue \   //监听的队列的名称
    --delay  0 \         //如果本次任务执行抛出异常且任务未被删除时,设置其下次执行前延迟多少秒,默认为0
    --memory 128 \       //该进程允许使用的内存上限,以 M 为单位
    --sleep  3 \         //如果队列中无任务,则多长时间后重新检查,daemon模式下有效
    --tries  0 \         //如果任务已经超过重发次数上限,则进入失败处理逻辑,默认为0
    --timeout 60         //创建的work子进程的允许执行的最长时间,以秒为单位
    Nach dem Login kopieren
  • Sie können sehen, dass im Listen-Modus der

    -Parameter nicht enthalten ist. Der Grund wird unten erklärt

    --deamon

    Linux startet den Daemon-Prozess. Nehmen Sie tp5 als Beispiel
nohup php think queue:work --daemon --queue 任务名称 &
 nohup php think queue:work --daemon --queue 任务名称 &
Nach dem Login kopieren

Um die Anzahl der Aufgaben in Linux zu überprüfen, können Sie Folgendes eingeben: jobs -l

Das obige ist der detaillierte Inhalt vonWerden Sie thinkphp-queue in ThinkPHP5 verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was soll ich tun, wenn ich beim Bereitstellen von thinkphp5 in Pagoda eine Fehlermeldung erhalte? Was soll ich tun, wenn ich beim Bereitstellen von thinkphp5 in Pagoda eine Fehlermeldung erhalte? Dec 19, 2022 am 11:04 AM

Lösung für den bei der Bereitstellung von thinkphp5 in Pagoda gemeldeten Fehler: 1. Öffnen Sie den Pagoda-Server, installieren Sie die PHP-Pathinfo-Erweiterung und aktivieren Sie sie. 2. Konfigurieren Sie die Datei „.access“ mit dem Inhalt „RewriteRule ^(.*)$ index.php ?s=/$1 [QSA ,PT,L]“; 3. Aktivieren Sie in der Website-Verwaltung einfach die Pseudostatik von thinkphp.

Was soll ich tun, wenn das Umschreiben der thinkphp5-URL fehlschlägt? Was soll ich tun, wenn das Umschreiben der thinkphp5-URL fehlschlägt? Dec 12, 2022 am 09:31 AM

Lösung dafür, dass das Umschreiben von thinkphp5-URLs nicht funktioniert: 1. Überprüfen Sie, ob das Modul mod_rewrite.so in der Konfigurationsdatei httpd.conf geladen ist. 2. Ändern Sie None in AllowOverride None in All. 3. Ändern Sie die Apache-Konfigurationsdatei .htaccess in „RewriteRule ^“. (.*)$ index.php [L,E=PATH_INFO:$1]“ und speichern Sie es.

So erhalten Sie die angeforderte URL in thinkphp5 So erhalten Sie die angeforderte URL in thinkphp5 Dec 20, 2022 am 09:48 AM

Methoden für thinkphp5 zum Abrufen der angeforderten URL: 1. Verwenden Sie die Methode „$request = Request::instance();“ der Klasse „\think\Request“, um die aktuellen URL-Informationen abzurufen Funktion „$request->url()“, um die vollständige URL-Adresse einschließlich des Domainnamens zu erhalten.

Was soll ich tun, wenn thinkphp5 post den Wert nicht abrufen kann? Was soll ich tun, wenn thinkphp5 post den Wert nicht abrufen kann? Dec 06, 2022 am 09:29 AM

thinkphp5-Beitrag kann keinen Wert abrufen, da TP5 die strpos-Funktion verwendet, um den app/json-String im Inhaltstypwert des Headers zu finden. Die Lösung besteht darin, den Inhaltstypwert des Headers auf app/json zu setzen.

So entfernen Sie das Titelleistensymbol von thinkphp5 So entfernen Sie das Titelleistensymbol von thinkphp5 Dec 20, 2022 am 09:24 AM

So entfernen Sie das thinkphp5-Titelleistensymbol: 1. Suchen Sie die Datei favicon.ico unter dem öffentlichen thinkphp5-Framework. 2. Löschen Sie die Datei oder wählen Sie ein anderes Bild aus, um sie in favicon.ico umzubenennen und die ursprüngliche Datei favicon.ico zu ersetzen.

Was soll ich tun, wenn thinkphp5 meldet, dass der Controller nicht existiert? Was soll ich tun, wenn thinkphp5 meldet, dass der Controller nicht existiert? Dec 06, 2022 am 10:43 AM

Lösung für die Meldung thinkphp5, dass der Controller nicht existiert: 1. Überprüfen Sie, ob der Namespace im entsprechenden Controller korrekt geschrieben ist, und ändern Sie ihn in den richtigen Namespace. 2. Öffnen Sie die entsprechende tp-Datei und ändern Sie den Klassennamen.

So fragen Sie die Daten von gestern in ThinkPHP5 ab So fragen Sie die Daten von gestern in ThinkPHP5 ab Dec 05, 2022 am 09:20 AM

So fragen Sie die Daten von gestern in ThinkPHP5 ab: 1. Öffnen Sie ThinkPHP5-bezogene Dateien. 2. Fragen Sie die Daten von gestern über den Ausdruck „db('table')->whereTime('c_time', 'yesterday')->select();“ ab .

So legen Sie Fehlermeldungen in thinkphp5 fest So legen Sie Fehlermeldungen in thinkphp5 fest Dec 07, 2022 am 10:31 AM

So legen Sie Fehleraufforderungen in thinkphp5 fest: 1. Geben Sie den öffentlichen Ordner im Projektstammverzeichnis ein und öffnen Sie die Eintragsdatei index.php. 2. Sehen Sie sich die Kommentare zum Debug-Modus-Schalter an. 3. Passen Sie den Wert der Konstante „APP_DEBUG“ an auf „true“ setzen, um eine Fehlermeldung anzuzeigen.

See all articles