首页核心服务模型QueueModel
QueueModel
Kuoqi\Core\Model\QueueModel(125 行):常驻循环任务队列(含手动 GC)
本页内容
  1. 方法清单
  2. 机制要点

方法清单

方法签名说明
getInstancestatic getInstance()单例
registerregister($closer, $config=[])注册一个循环任务(入队)
startstart($execCount=0)0 走 startInfinite,否则 startLimited
startLimitedstartLimited($limit)执行有限次数(任务执行完塞回队尾,循环)
startInfinitestartInfinite()无限循环;队列空时 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 · 返回首页