Ste*_*ven 2 php performance beanstalkd node.js
我有一个用nodejs构建的beanstalkapp工作者,它有一个PHP应用程序可以完成所有站点工作,如果有错误或问题或通知,或者它将它添加到beanstalkapp中.然后,nodejs需要经常运行检查beanstalkapp以查找任何消息并对它们执行某些操作(通过电子邮件发送给某人,将其添加到日志中,发布到某处).
我的问题是,这是不好的表现还是有更好的方法来做到这一点?我会假设setInterval不让进程结束,因此会很糟糕?
这取决于你的setInterval时间.javascript解释器在事件之间休眠.因此,在setIntervals 之间,您的node.js应用程序消耗零(或几乎为零)CPU时间.
因此,应用程序在整个系统上产生的负载量取决于setInterval发生的频率.每秒一次几乎不会占用任何CPU.另一方面,每隔1ms(使用setInterval时间为1或0调用)可能会使系统陷入困境,尤其是在资源受限的计算机或VM上运行时.
根据我的经验,良好的折衷方案是大约50或100毫秒(每秒20或10次).它对即使是实时应用也足够响应(因为人类感知比20Hz慢很多)并且足够长,对系统的其余部分几乎没有影响.