我正在建立一个带有自定义购物车和管理员的Laravel 5电子商务网站,我认为使用命令将是一个好主意,而不是使用一般服务。我喜欢将代码分段出来的想法,以便每个命令都有一个责任,并且每个命令都将被关闭进行修改,以便在添加新功能时代码不会轻易被破坏。另外,这是一个新的挑战!
我唯一关心的是服务器负载。使用命令总线会大大降低性能吗?如果是这样,它提供的可维护性是否超过了性能损失?
修改
我应该提到我担心导致服务器负载过多的命令是同步命令。例如,将产品添加到购物车。我也会做一些异步命令,比如在邮件列表中添加一个客户,但这不是一个问题。我只是不希望应用程序变得缓慢且无响应。
答案 0 :(得分:0)
您可以(并且应该)使用命令总线来放置一些缓慢的逻辑。
为了确保它只使用必要的系统资源,您应该使用Daemon Queue Workers。
查看Laravel Docs (Daemon Queue Worker)
使用守护程序模式,不会在每个命令中重新启动框架。这将减少很多开销。
答案 1 :(得分:0)
为命令加载整个引导程序。通过命令运行脚本与相反的命令之间几乎没有或可忽略不计。
从你说话的方式来看,这些命令似乎会运行管理任务(crud)。如果是这样,您可能最好创建一个仅负责这些crud操作的单独的laravel实例。这可以放在一个单独的服务器上,消除了通过在客户浏览的同一个实例上执行而产生的代码执行开销。