正在播放:让系统更美好的队列
更新时间:2年前
Laravel 队列
标 题 | 时 间 |
---|---|
让系统更美好的队列 | 03:34 |
使用数据库驱动实现队列系统 | 14:48 |
如何处理队列中执行失败的 Jobs | 10:01 |
如何重新执行队列中的失败的 Jobs,如何删除 Job | 02:12 |
使用 Redis 作为驱动实现队列功能 | 06:06 |
Redis 驱动队列的监控面板 Horizon | 06:40 |
php artisan queue:work 版本差异 | 02:22 |

Hesunfly 2019-01-08 21:48:39
站长,能不能讲一下不同的队列驱动之间的区别,以及我们应该如何选择一个适合自己的项目的驱动类型,或某个驱动适合哪些类型的项目呢。期待您的解答!

codinget 2019-01-08 22:39:11
这个我还真不好回答,因为不管选择什么样的队列,处理的逻辑还都是在本地服务器处理的,业务逻辑部分消耗的还是服务器的计算资源。我也没有用过所有的队列驱动,我能建议的是,小项目比如一些展示性的网站或应用,访问量不高,任务不重的话使用数据库的队列系统就能满足要求。redis 驱动的队列足够满足绝大部分项目的需求,在laravel官方没有推出 Horizon 之前,很多人选择使用 Beanstalkd,因为它拥有一个带 UI 的管理界面,也是专业的队列驱动。但是Horizon 推出之后,因为配置简单,官方集成,与 laravel 融合度非常高,UI 管理界面也非常友好,很多人为了管理和维护更方便,就切换到了 redis 驱动。亚马逊的驱动说实话我真的没用过,我了解过,是一个非常专业的队列驱动,管理页面在亚马逊的服务器上,非常友好,但基本都是老外再用,在国内我也不知道它究竟表现如何。另一方面,Laravel 这个框架本身也有自己的限制,并不能覆盖所有的使用场景,对于用户量非常大,任务密集型的项目,有的时候是 Laravel 可能会拖后腿,而不是队列拖后腿(数据库的驱动队列在这种场景下肯定是不选的,数据库频繁读写服务器的压力瞬间就会飙升)。队列驱动通常也不是一步到位的,做项目的时候,可以直接先把redis 驱动用起来,满足不了要求了再更换驱动即可,没有必要在一开始的阶段就把方案彻底定下来。如果项目真的最后成为爆款,项目再版的时候框架的选型都会变,更不要说队列驱动了。
暂无相关资源