123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- <?php
- namespace app\index\controller;
- use think\Queue;
- use think\Controller;
-
- /*
- *
- */
- class JobTest extends Controller
- {
- /*
- * https://queue.dev.zx2049.com/index/JobTest/test
- */
- public function test()
- {
- // 1.当前任务将由哪个类来负责处理。
- // 当轮到该任务时,系统将生成一个该类的实例,并调用其 fire 方法
- $jobHandlerClassName = 'app\jobs\JobTest';
-
- // 2.当前任务归属的队列名称,如果为新队列,会自动创建
- $jobQueueName = "helloJobQueue";
-
- // 3.当前任务所需的业务数据, 不能为 resource 类型,其他类型最终将转化为json形式的字符串
- // (jobData 为对象时,存储其public属性的键值对 )
- $jobData = ['ts' => time(), 'uniqId' => uniqid(), 'a' => 1];
-
- // 4.将该任务推送到消息队列,等待对应的消费者去执行
- for($i=1;$i<100;$i++){
- $isPushed = Queue::push($jobHandlerClassName, $jobData, $jobQueueName);
-
- //var_dump($isPushed);
- // database 驱动时,返回值为 1|false;redis 驱动时,返回值为 随机字符串|false
-
- //域名解析存在两条 *.dev
- //这里明明返回0 0 !== false 是成立的
- //以为一直成功 结果根本没插入数据库
- //既然能执行到这里的代码 为何无法插入数据库 返回0
- 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.';
- }
- }
-
-
-
- }
- }
|