首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pheanstalk问题

Pheanstalk问题
EN

Stack Overflow用户
提问于 2011-05-24 19:45:16
回答 1查看 1.9K关注 0票数 4

我希望运行一个持久的python解释器实例,它可以传递输入。为此而设计的整个系统将使用PHP编写。我注意到在beanstalkd工作队列上使用的Pheanstalk包。有没有人使用Pheanstalk来产生(和维护)一个持久的进程?我知道Pheanstalk的常见用法是运行脚本或其他在异步事务中花费较长时间的任务,以避免用户等待。我正在寻找一个异步的Pheanstalk作业/进程,它管理和维护一个我可以传递输入的python解释器进程。这是否可能/是否已经完成,如果是,是如何完成的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-05-24 23:21:50

我确实使用Pheanstalk运行过持久队列工作程序。它的工作原理如下:

父PHP进程派生指定数量的工作进程。每个worker使用Pheanstalk连接到beanstalkd并等待作业。当一个工人得到一个工作,它执行任务,然后退出,释放它的内存。然后,父PHP进程会产生一个新的worker来替换它。

您的需求听起来更像这样:

父PHP进程使用proc_open()派生python解释器进程,存储对创建的STDIN和STDOUT管道的引用。然后,父PHP进程进入循环,使用Pheanstalk连接到beanstalk并保留下一个作业。当作业被保留时,PHP使用fwrite()将作业内容发送到python STDIN管道,然后使用fread()从pythons STDOUT管道读取响应。

这是假设您想要维护一个正在运行的python进程,而不是在每次保留作业时启动一个新的python进程。

无论哪种方式都很疯狂,但它可能会起作用。

更明智的选择是使用Python beanstalkd客户端,但是,很高兴看到更多的人使用Pheanstalk :)

干杯,保罗

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

https://stackoverflow.com/questions/6109872

复制
相关文章

相似问题

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