php 计算问题
<code>$res['code'] = 200; //这里进行计算生成数据,但生成的数据不是用户急需的, //没有想到其它方式可以触发这个计算程序,所以只能设计最后一个用户提交后计算, //由于数据量大,用户等待返回的时间由计算时间决定,可不可以先返回给用户再计算,怎么操作? $this->ajaxReturn($res);//只需返回 code=200 给用户</code>
回复内容:
<code>$res['code'] = 200; //这里进行计算生成数据,但生成的数据不是用户急需的, //没有想到其它方式可以触发这个计算程序,所以只能设计最后一个用户提交后计算, //由于数据量大,用户等待返回的时间由计算时间决定,可不可以先返回给用户再计算,怎么操作? $this->ajaxReturn($res);//只需返回 code=200 给用户</code>
把要做的计算业务先推入mq,就是任务队列,这个可以用redis去做。
Linux跑脚本,一直消费队列。
用redis实现一个队列,每次把相关信息放到队列中,然后返回给用户code,队列里的数据用脚本去跑
Gearman
http://gearman.org/
你需要的应该是这个
异步操作
把计算当做一个任务,放到队列中,有一个脚本在跑,从队列里获取任务,然后在后台处理.
这也就是需要所谓的消息队列,可以看下 rabbitmq,gearman 等消息队列.
我这里写了一篇 php rabbitmq 的使用方法,可以看下.
https://segmentfault.com/a/1190000004924668
上面各位大神提到将计算任务放到消息对队中, 确是一种不错的方案。 但是需要搭建队列服务。
如果计算量不是特别巨大的, 是不是可以fork一个进程来解决更简单呢。
参考一下YII框架的Request对象的onEndRequest方法,该方法是一个可以实现异步调用。
比较同意 @zyxcba 的回答,如果量不大的话是可以先把数据 flush 出去,然后再 fork 一个进程来处理具体的计算任务的,不过 pcntl
扩展只能在 Linux 上面使用。
如果计算的数据不需要返回给用户,可以先行返回继续执行代码的。php-fpm可以使用这个fastcgi_finish_request,echo 返回值,fastcgi_finish_request(),后面继续执行。。。。或者就是使用队列了

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

In diesem Kapitel werden wir die Umgebungsvariablen, die allgemeine Konfiguration, die Datenbankkonfiguration und die E-Mail-Konfiguration in CakePHP verstehen.

PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

Um in cakephp4 mit Datum und Uhrzeit zu arbeiten, verwenden wir die verfügbare FrozenTime-Klasse.

Um am Datei-Upload zu arbeiten, verwenden wir den Formular-Helfer. Hier ist ein Beispiel für den Datei-Upload.

In diesem Kapitel lernen wir die folgenden Themen im Zusammenhang mit dem Routing kennen.

CakePHP ist ein Open-Source-Framework für PHP. Es soll die Entwicklung, Bereitstellung und Wartung von Anwendungen erheblich vereinfachen. CakePHP basiert auf einer MVC-ähnlichen Architektur, die sowohl leistungsstark als auch leicht zu verstehen ist. Modelle, Ansichten und Controller gu

Das Arbeiten mit der Datenbank in CakePHP ist sehr einfach. In diesem Kapitel werden wir die CRUD-Operationen (Erstellen, Lesen, Aktualisieren, Löschen) verstehen.

Der Validator kann durch Hinzufügen der folgenden zwei Zeilen im Controller erstellt werden.
