所以我有一个应用程序,几乎任何用户操作都需要调用第三方系统.所述第三方系统非常慢(400-500ms网络响应时间).
因此,为了保持用户操作快速而不是立即进行调用,作业在Redis缓存中排队,并且队列工作者群集接收这些作业并实际调用第三方服务.
我注意到的是,在将这些作业推入队列后,队列工作者的CPU利用率急剧下降.我的一位同事认为这不是由于新的工作类型(至少不是我想的那样),因为工作人员的CPU核心将跳转到另一个进程,而给定的进程被长时间运行的网络调用占用.
我的问题是 - 是吗?使用PHP,如果我进行长时间运行的网络呼叫,CPU核心是否等待该呼叫?如何测试是否是这种情况?