Werden Sie thinkphp-queue in ThinkPHP5 verwenden?

藏色散人
Freigeben: 2020-07-17 13:23:29
nach vorne
6096 Leute haben es durchsucht

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!

Verwandte Etiketten:
Quelle:oschina.net
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!