如何用PHP设置Beanstalkd
最近我一直在研究Beanstalkd在PHP中的使用。我学到了很多东西,但对服务器上的设置等有一些问题 以下是我对其工作原理的看法:如何用PHP设置Beanstalkd,php,bash,message-queue,daemon,beanstalkd,Php,Bash,Message Queue,Daemon,Beanstalkd,最近我一直在研究Beanstalkd在PHP中的使用。我学到了很多东西,但对服务器上的设置等有一些问题 以下是我对其工作原理的看法: 我在Ubuntu服务器上安装Beanstalkd和任何依赖项(如libevent)。然后启动Beanstalkd守护进程(基本上应该一直运行) 在我的网站中的某个地方(例如当用户执行某些操作等),任务被添加到Beanstalkd队列中的各个管道中 我有一个bash脚本(比如下面的脚本),它作为一个deamon运行,基本上执行一个PHP脚本 #!/bin/sh ph
#!/bin/sh
php worker.php
while(1) {
$job = $this->pheanstalk->watch('test')->ignore('default')->reserve();
$job_encoded = json_decode($job->getData(), false);
$done_jobs[] = $job_encoded;
$this->log('job:'.print_r($job_encoded, 1));
$this->pheanstalk->delete($job);
}
下面是我根据上述设置提出的问题(如果我错了,请纠正我):
job stat
命令查看特定$job来自何处(哪个管道),或者如果需要区分每种类型和另一种类型,可以在消息中添加一些元信息reserve()
中输入一个数字,让它等待几秒钟或更长时间,以便下一个作业在一个不会暂停的紧密循环中不失控地旋转,即使没有什么事情可做exec$@
根据需要重新运行它)。只要php脚本退出,它就会重新运行php谢谢你的链接!我一定会调查的。关于#2的问题:该脚本多久执行一次?这完全取决于守护进程执行bash脚本的频率吗?另外,是否有任何方便的方法(通过代码片段或“仪表板”类型的东西)来查看beanstalk的所有执行情况,等等?大多数/所有库都应该提供对stats、list tube和stat tube命令的调用。还有一些其他的。我没见过跑步,但那也可以做一些事情。