Subscribe.php 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. <?php
  2. namespace addons\shop\controller\queue;
  3. use think\Controller;
  4. use think\queue\Job;
  5. class Subscribe extends Controller
  6. {
  7. public function fire(Job $job, $param)
  8. {
  9. if ($job->attempts() > 3) {
  10. //通过这个方法可以检查这个任务已经重试了几次了
  11. $job->delete();
  12. return;
  13. }
  14. extract($param);
  15. $event = $event ?? '';
  16. $order_sn = $order_sn ?? '';
  17. // 推送消息
  18. $result = (new \addons\shop\model\TemplateMsg)->getSendOrderData($event, $order_sn);
  19. if ($result) {
  20. //如果任务执行成功后 记得删除任务,不然这个任务会重复执行,直到达到最大重试次数后失败后,执行failed方法
  21. $job->delete();
  22. print("成功\n");
  23. } else {
  24. // 也可以重新发布这个任务
  25. $delay = 0;
  26. $job->release($delay); //$delay为延迟时间
  27. print("失败\n");
  28. }
  29. }
  30. public function failed($data)
  31. {
  32. // ...任务达到最大重试次数后,失败了
  33. print("达到最大重度次数\n");
  34. }
  35. }