🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# 目录总览 ``` |--- Producer.php |--- Consumer.php |--- Queue.php |--- Driver |---|--- QueueI.php |---|--- MysqlDriver.php |---|--- RedisDriver.php |---|--- Job.php |--- queue.sql ``` # 文件作用介绍 - Producer.php 生产者,用于生成消息 - Consumer.php 消费者,用于消费消息 - Queue.php 队列操作类,为生产者和消费者提供一组统一的消息队列操作接口 - Driver/QueueI.php 队列操作接口,规范为Queue.php提供具体服务的驱动类,所有驱动类必须实现此接口,以确保有能力为Queue.php提供底层服务 - Driver/MysqlDriver.php Mysql队列操作驱动,负责与Mysql的底层操作 - Driver/RedisDriver.php Redis队列操作驱动,负责与Redis的底层操作 - Driver/Job.php 统一的消息结构(数据格式),可以参考下面《数据格式》的介绍理解此文件的作用 - queue.sql 这是一个 sql 文件,里面是 mysql 消息队列表的表结构 # 数据格式 接着,我们需要统一「消息」的格式。 我们知道,生产者和消费者,同时依赖于消息队列,它们对消息进行处理的时候,则依赖于消息格式。 **统一的消息格式,就像是面向对象中的接口,使调用方和实现方,都在规范轨迹之内工作。** 所以,我们添加了一个文件: - Job.php # 调用流程 ![调用流程](https://box.kancloud.cn/91d8dd58498fd0b4e81aeec979ef95bc_442x850.png)