Laravel命令总线的服务器负载


Server Load for Laravel Command Bus

我正在构建一个带有自定义购物车和管理的Laravel 5电子商务网站,我认为使用命令将是一个好主意,而不是使用一般服务。我喜欢将代码分割出来的想法,这样每个命令都有一个单独的职责,并且每个命令都将关闭以进行修改,这样在添加新功能时代码就不会轻易被破坏。另外,这是一个新的挑战!

我唯一关心的命令是服务器负载。使用命令总线是否会显著降低性能?如果是这样,它提供的可维护性是否超过了性能损失?

编辑

我应该提到,我担心导致过多服务器负载的命令是同步命令。例如,将产品添加到购物车。我也会执行一些异步命令,例如将客户添加到邮件列表中,但这不是问题所在。我只是不希望应用程序变得缓慢和无响应。

您可以(并且应该)使用命令总线来放置一些慢速逻辑。

要确保它只使用必要的系统资源,您应该使用守护队列工作程序。

看看Laravel Docs (Daemon Queue Worker)

使用Daemon模式,框架不会在每个命令下都重新启动。

为命令加载整个引导程序。通过命令和相反的方式运行脚本之间几乎没有区别。

从您说话的方式来看,似乎这些命令将运行管理任务(crud)。如果是这样,最好创建一个单独的laravel实例,它只负责这些crud操作。这可以放在一个单独的服务器上,以消除在客户正在浏览的同一个实例上执行所产生的代码执行开销。