Laravel 5.8中同时执行的定时任务是否会共用同一个数据库连接?
结论:两个定时任务实例不会共用同一个数据库连接,也不会共享同一个PDO实例和数据库连接套接字。
前提误区说明
你提到的「两个命令运行在同一个cron进程下」的假设不成立。Laravel调度器在处理command类型的调度任务时,默认会为每一个触发的命令单独创建独立的PHP CLI子进程,两个任务是完全隔离的独立进程,不存在资源共享的基础。
数据库连接隔离逻辑
- 每个独立的PHP CLI进程都会完整初始化一次Laravel服务容器,数据库连接在容器内是单例,但仅在当前进程的生命周期内有效,跨进程不共享。
- 每个进程会自行创建独立的PDO实例,对应独立的TCP套接字连接到数据库,两个进程的数据库操作完全互不干扰,各自占用独立的数据库连接数。
- 除非你主动做了进程间通信共享连接的特殊定制,Laravel默认配置下不会出现跨进程的数据库连接共享情况。
内容的提问来源于stack exchange,提问作者Dimitrios Desyllas
相关产品推荐
相关产品推荐

