共 10 篇文章
Laravel 中为何不使用 blpop 取队列?
Redis 的 list 数据结构常用来做消息队列,通常使用的命令有 lpop/rpop ,还有带阻塞版的 blpop/brpop 等。blpop 的优点是避免一直轮询占用资源,而且支持多个列表作为参数并按照顺序弹出数据,如 blpop high low 30,可以更方便实现队列的优先级。
Laravel 中间件原理
Laravel 的中间件机制提供了一种管道的方式,每个 HTTP 请求经过一个又一个中间件进行过滤,Laravel 内置了很多中间件,比如 CSRF 机制,身份认证,Cookie 加密,设置 Cookie 等等。
Laravel 队列任务重复执行问题
在使用 Laravel Redis 队列时,发现一个任务被多次执行,这是为什么呢?
原因:Laravel 中如果一个队列任务执行时间大于 60 秒,就会被认为执行失败并重新加入队列,这样就会导致重复执行。
Laravel Redis 队列原理分析
使用 Supervisor 开启多个进程处理队列任务时,是否会导致重复消费同一个任务?本文从源码角度分析 Laravel Redis 队列的工作原理。
Laravel 队列实践指南
使用 Laravel 消息队列处理异步任务,Redis 作为队列驱动,Supervisor 监控进程异常中断并自动重启,这是 Laravel 处理队列任务的标准配置。但在生产环境中,为了保证系统可靠性,还需要注意以下几点。
使用 Docker 搭建 Laravel 本地开发环境
Laravel 官方提供 Homestead 和 Valet 作为本地开发环境,但 Docker 相比虚拟机占用体积更小、启动更快,是更好的选择。
使用 Supervisor 管理 Laravel 队列进程
Supervisor 是一个 Python 写的进程管理工具,有时一个进程需要在后台运行,并且意外挂掉后能够自动重启,就需要这么一管理进程的工具。在 Laravel 开发中,也经常使用到队列监听,可以配合 Supervisor 来管理 Laravel 队列进程。
Laravel 分割 routes.php 路由文件的一种方式
Laravel 的路由功能很强大,路由规则默认都定义在 routes.php 文件中,但是随着项目越来越大,我们需要的定义的规则越来越多,如果几百上千个路由都定义在一个文件中,如何去维护?如果不同的人都在同一个文件定义路由,这就造成了冲突,因此我们有必要将 routes.php 文件分割成多个文件,可以按照功能模块来划分。
优化 Laravel 网站打开速度
Laravel是一个功能强大的框架,组件很多,代码也很庞大,它的易用方便是牺牲了性能的,即便如此它仍然是一个优秀的框架,但在正式环境下要做好优化提升网站的打开速度。