使用PHP客户端和永久数据库连接排队的消息

时间:2015-09-03 08:52:41

标签: php mysql message-queue

我尝试构建一个应用程序,其中我的Web应用程序将一些消息推送到队列,然后工作人员将提取消息并执行一些SQL查询到远程数据库。

有一些很好的解决方案,如gearman.org,rabbitMQ等。

问题我得到的是如何为所有邮件保持与远程数据库的永久连接。 每次必须执行新的SQL时,我都不希望我的工作者重新连接到数据库。

有没有办法使用一个好的MQ系统,并且在共享内存中有一些永久工作者或连接保存? 工作者不能是PHP,可以是连接到远程mysql服务器的任何东西。

由于

1 个答案:

答案 0 :(得分:0)

我在SMS网站上如何实现同样的目标是在C#上创建处理器应用程序(幸运的是我有一个Windows服务器,如果你使用的是linux,你可以在java应用程序上执行相同的处理器),这个处理器将处理使用一个连接并可能使用多线程的信息。它使您可以从处理的角度完全控制整个应用程序的结构。

解决方案1: 使用PHP worker / queue处理器并通过命令行运行它并在while循环中保持活动状态。例如:

php_file.php

<?php 
//create connection
while (true){
    //do the processing here
    sleep(3000);
}
?>

on cli,写道:

nohup php php_file.php > worker_output.out & 

解决方案2: 用PHP执行任何其他语言的程序,一旦执行就不会结束会话。也许python或java可以提供帮助。