Open pndx opened 2 years ago
config.php
包含系统配置参数
Connector
连接器合约,约定了子类需要实现的方法。
RedisConnector
基于Redis的连接器具体实现类,底层封装了Predis客户端,通过__call
方法调用Predis客户端方法。
Redis
Lua操作Redis脚本,在Queue中调用。
AbstractQueue的实现类,包含了比较复杂的代码,不是很理解,需要继续阅读。
DriverFactory
根据配置生成相应的Queue对象。
LoggerInterface
日志合约(PSR-3规范)
DefaultLogger
底层使用monolog/monolog
做日志处理,按照日志级别将日志记录到不同的日志文件中。
dashboard(前端状态面板),这里只是一个页面,调用/api/queue_status
的数据来显示图表。
SerializerInterface
序列化和反序列化合约
ClosureSerializer
闭包序列化与反序列化实现类
PhpSerializer
Php序列化与反序列化实现类
CompressingSerializer
压缩序列化与反序列化实现类
Factory
序列化与反序列化实现类调用,使用了单例模式。
AbstractWorker
Worker抽象类,包含了queue、logger、process的初始化。这里的queue、logger都使用了依赖注入,process是Swoole Process模块的调用。
ConsumerWorker
消费者Worker实现类,包含了比较复杂的代码,不是很理解,需要继续阅读。
MonitorWorker
观察器Worker实现类,包含了比较复杂的代码,不是很理解,需要继续阅读。
PipeMessage
将原始字符串格式消息转化为数组,取得type和payload的值。
AbstractQueue
Queue抽象类,部分实现了QueueInterface,未实现的部分在子类里实现。
Compressable
没理解getCompressingThreshold
是干嘛的。
JobInterface
Job合约,约定子类需要实现的方法。
JobMiddlewareInterface
Job中间件合约,约定Job中间件需要实现的方法。
JobSnapshotterInterface
Job事件合约,约定Job事件需要实现的方法。
Manager
包含了比较复杂的代码,不是很理解,需要继续阅读。
QueueInterface
WorkerManager
使用依赖注入导入queue和logger,包含了线程信号处理,包含了worker的相关处理,包含了比较复杂的代码,不是很理解,需要继续阅读。
用 lua 是保证多个 redis 语句执行的原子性; 队列的设计用到了相关的数据结构,所以相应的用了; https://github.com/Littlesqx/aint-queue/blob/master/src/Compressable.php 实现了这个接口的 job 有这个方法; 读其他类似的组件源码,明白原理就能一步步写出来了
感谢回复,我在研究研究,好多还不是很懂
QueueReloadFailedCommand的id参数是没有在使用吗?
QueueReloadFailedCommand的id参数是没有在使用吗?
看了下确实没有使用
大佬,为什么要用到lua? 为什么有用到hexists、zscore等?
$object->getCompressingThreshold()
这个方法是哪来的? 大佬,这个是咋写出来的?深刻理解swoole? 好多看不懂的,有难度