首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pheanstalk (beanstalk的PHP客户端)--连接是如何工作的?

Pheanstalk (beanstalk的PHP客户端)--连接是如何工作的?
EN

Stack Overflow用户
提问于 2012-02-06 01:29:00
回答 1查看 2.4K关注 0票数 3

我想要一些帮助理解pheanstalk (php beanstalk客户端)的用法。我有一个PHP程序,当表单数据发送到服务器时,它会在服务器上执行。然后,PHP程序应将表单数据打包为JSON结构,并将其发送到后端服务器进程。

我不明白的是到beanstalkd服务器的连接。我是否应该在每次执行PHP程序时创建一个新的Pheanstalk()对象-在这种情况下,我是否要承担创建连接的成本。连接何时关闭(因为pheanstalk中没有close()方法)?

如果连接是持久的,那么它是否在PHP程序的所有执行之间共享,在这种情况下,在并发命中的情况下会发生什么?谢谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-06 04:08:23

是的,每次启动程序时,您都必须创建一个与Pheanstalk (或任何其他库)的新连接,因为PHP会重新启动每个库。不过,开销很小。

Beanstalkd进程经过优化,可以轻松地处理大量连接,并将自动处理这些连接-您不会得到重复的作业,除非您在其中放入两个相同的作业(即使这样,它们也会有不同的作业ID)。

在发送第一个命令之前,Pheanstalk甚至不会向守护进程发送数据和任何信息(包括打开连接)。正是由于这个原因,在您主动发出请求之前,您甚至无法判断守护进程是否处于活动状态(在我的测试中,我得到了当前管的列表)。如果您一直在运行的程序中重用实例化的类,那么它当然会一直重用它。

没有正式的析构函数,但是unset($pheanstalk)也会做同样的事情,运行析构函数。同样,调用是程序如此短暂,如果允许,守护进程可以保持如此多的并发连接打开,这不是问题-它将像程序本身一样关闭。

简而言之,不用担心。连接和发送数据到Beanstalkd或从Beanstalkd发送数据的开销可能只是工人或生产者在生成请求/响应时所做的任何工作的一小部分。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9151315

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档