求助 官方提供的 think-queue扩展

浏览:3185 发布日期:2018/12/12 分类:求助交流 关键字: queue
使用 think-queue扩展 按照教程还有官方文档设置了一下 可以成功的把消息加入到推送队列 但是最后在命令行执行:php think queue:work --queue helloJobQueue 的时候 提示错误:there are no commands defined in the "queue" namaespace

驱动方式使用的数据库方式 namespace app\wechat\controller;
use think\Exception;
use think\Queue;
use think\Config;

class Jobtest {
      /**
       * 一个使用了队列的 action
       */
      public function actionWithHelloJob(){
          // 1.当前任务将由哪个类来负责处理。 
          //   当轮到该任务时,系统将生成一个该类的实例,并调用其 fire 方法

          $jobHandlerClassName= 'app\wechat\job\Hello'; 
          // 2.当前任务归属的队列名称,如果为新队列,会自动创建
          $jobQueueName        = "helloJobQueue"; 
          // 3.当前任务所需的业务数据 . 不能为 resource 类型,其他类型最终将转化为json形式的字符串
          // ( jobData 为对象时,需要在先在此处手动序列化,否则只存储其public属性的键值对)
          $jobData             = [ 'ts' => time(), 'bizId' => uniqid() , 'a' => 1 ] ;
          // 4.将该任务推送到消息队列,等待对应的消费者去执行
          $isPushed = Queue::push( $jobHandlerClassName , $jobData , $jobQueueName );    
          // database 驱动时,返回值为 1|false  ;   redis 驱动时,返回值为 随机字符串|false
          if( $isPushed !== false ){  
              echo date('Y-m-d H:i:s') . " a new Hello Job is Pushed to the MQ"."<br>";
          }else{
              echo 'Oops, something went wrong.';
          }
     }
}
错误:E:\WWW\TP>php think queue:work --queue helloJobQueue
  [InvalidArgumentException]
  There are no commands defined in the "queue" namespace.
最佳答案
评论( 相关
后面还有条评论,点击查看>>