首页›核心服务模型›QueueModel
QueueModel
Kuoqi\Core\Model\QueueModel(125 行):常驻循环任务队列(含手动 GC)
本页内容
- 方法清单
- 机制要点
方法清单
| 方法 | 签名 | 说明 |
|---|---|---|
getInstance | static getInstance() | 单例 |
register | register($closer, $config=[]) | 注册一个循环任务(入队) |
start | start($execCount=0) | 0 走 startInfinite,否则 startLimited |
startLimited | startLimited($limit) | 执行有限次数(任务执行完塞回队尾,循环) |
startInfinite | startInfinite() | 无限循环;队列空时 usleep(100000) 降 CPU |
机制要点
- gc_enable + 每 $__GC_COUNT(默认 1)次 gc_collect_cycles 手动回收,防内存溢出
- 任务执行后塞回队尾实现循环常驻
- $__IS_DEBUG__ 开启时输出内存变化
- 典型场景:daemon 守护脚本(daemonCreate 生成的 Worker 即用 QueueModel)
典型用法
// 守护脚本(CLI 常驻)
$queue = \Kuoqi\Core\Model\QueueModel::getInstance();
$queue->register(function($config){
// 业务处理
$rows = M("order")->where(array("status" => 0))->select();
// ...
}, array("interval" => 60));
$queue->start(); // 无限运行
KuoqiPHP v1.05 · 离线静态文档 · 界面基于 KuoqiUI ·
返回首页