PHP – 有什么办法来控制stream程执行?

我有phpnodejs安装在我的服务器。 我打电话通过php使用node canvasnodejs代码

喜欢:

 <?php exec(node path/to/the/js/file); ?> 

问题:

由于node canvas ,执行的每个进程消耗大约250 Mb的内存。 所以,如果我的服务器有大约8Gb的内存,那么只有32个用户可以在任何时间点使用这个服务,而且如果用户数超过,就有可能导致服务器崩溃。

有什么可扩展的解决scheme来解决这个问题吗?

更新我必须使用Canvas服务器端,因为我的业务需求,所以我使用node canvas ,但它是沉重的消耗内存,这是一个巨大的问题。

你的问题是,你为每个请求启动一个新的node.js进程,这就是为什么内存占用如此巨大,而不是build立node.js。
但是node.js是为了在一个进程中处理很多不同的请求而build立的,使用它就是你的优势。

我build议你做的只有一个node.js进程开始,并find另一种方式来沟通你的PHP进程和node.js进程。

很多不同的方法可以做到这一点,比其他人有更多的performance,比其他更难。 所有的优点和缺点,但既然都是networking相关的语言,你可以肯定有支持HTTP请求。

所以你应该做的是一个基本的node.js / Express服务器,可能只有一个API点,它执行已经完成的代码,并返回结果。 这很容易做到(特别是如果你使用JSON在它们之间进行通信),虽然我不知道PHP,但我很确定很容易发送HTTP请求并解释答案。

如果你已经准备好在node.js中挖掘,你可以尝试套接字或MQ,这应该是更高性能的。

这样,你只有一个node.js进程,它不应该在内存中增长,并且处理更多的客户端,不需要使用exec ,而只需要使用Express。