Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Asynchroner PHP-Methodenaufruf im Yii-Framework

Typischerweise besteht die Lösung für diese Art von Problemen darin, einen Nachrichtenbus in Ihr System zu integrieren. Sie könnten ein Produkt wie Beanstalkd in Betracht ziehen . Dies erfordert die Installation von Software auf Ihrem Server. Ich nehme an, dieser Vorschlag würde "Verwendung einer externen Bibliothek" heißen.

Wenn Sie auf den Bereitstellungsserver zugreifen und einen Cronjob hinzufügen können (oder vielleicht ein Systemadministrator kann), könnten Sie einen Cronjob in Betracht ziehen, der einen PHP-CLI-Aufruf an ein Skript ausführt, das Jobs aus einer Jobwarteschlange in Ihrer Datenbank liest, die vom Controller gefüllt wird Methode.

Wenn Sie auf dem von Ihnen ausgeführten Server keine Software installieren können, sollten Sie eine SAAS-Lösung wie Iron.io um die Busfunktionalität für Sie zu hosten. Iron.io verwendet eine sogenannte Push-Warteschlange . Bei einer Push-Queue führt der Nachrichtenbus aktiv eine Anfrage (Push) an die registrierten Listener mit dem Nachrichteninhalt durch. Dies könnte funktionieren, da Sie keine Curl-Anfrage stellen müssen.

Wenn nichts davon möglich ist, sind Ihnen die Hände gebunden. Ein weiterer Beitrag, der zu diesem Thema sehr relevant ist:Scalable, Delayed PHP Processing