DemoJob.php 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Job;
  4. use App\Utils\LogUtil;
  5. use Hyperf\AsyncQueue\Job;
  6. class DemoJob extends Job
  7. {
  8. //日志板块
  9. private const LOG_MODULE = 'DemoJob';
  10. public $params;
  11. /**
  12. * 任务执行失败后的重试次数,即最大执行次数为 $maxAttempts+1 次
  13. */
  14. protected int $maxAttempts = 2;
  15. public function __construct($params)
  16. {
  17. // 这里最好是普通数据,不要使用携带 IO 的对象,比如 PDO 对象
  18. $this->params = $params;
  19. }
  20. /**
  21. * Execute the job.
  22. *
  23. * @return void
  24. */
  25. public function handle()
  26. {
  27. //日志统一写入
  28. LogUtil::getInstance('Queues/');//设置日志存入通道
  29. LogUtil::info('开始处理', self::LOG_MODULE, __FUNCTION__, ['params' => $this->params]);
  30. // 根据参数处理具体逻辑
  31. // 通过具体参数获取模型等
  32. // 这里的逻辑会在 ConsumerProcess 进程中执行
  33. // var_dump($this->params);
  34. LogUtil::info('处理结果', self::LOG_MODULE, __FUNCTION__);
  35. LogUtil::close();
  36. }
  37. }