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

我希望对理解pheanstalk(php beantalk客户端)的使用有所帮助.我有一个PHP程序,当将表单数据发送给它时在服务器上执行.然后,PHP程序应将表单数据打包为JSON结构,并将其发送到后端服务器进程.

我不明白的是与beantalkd服务器的连接.我是否应该在每次执行PHP程序时都创建一个新的Pheanstalk()对象-在这种情况下,我要承担创建连接的费用.什么时候关闭连接(因为pheanstalk中没有close()方法)?

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

解决方法:

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

Beanstalkd流程经过优化,可以轻松处理多个连接,并且将对它们进行原子操作-您不会得到重复的作业,除非您在其中放置两个相同的作业(即使那样,它们也将具有不同的作业ID. ).

在发送第一个命令之前,Pheanstalk甚至不会向守护程序发送任何信息(包括打开连接).出于这个原因,在主动提出请求之前,您无法确定守护进程是否还活着(在我的测试中,我获得了当前管道的列表).如果您继续在运行的程序中重用实例化的类,那么它当然会继续重用它.

没有正式的close(),但是unset($pheanstalk)将执行相同的操作,运行析构函数.同样,该调用是程序的临时调用,并且如果允许的话,守护程序可以保持打开并发连接的数量,所以这不是问题-它将像程序本身一样被关闭.

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

标签:beanstalkd,php

来源: https://codeday.me/bug/20191101/1985800.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值