GiveOutCouponToUser.php 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. <?php
  2. namespace app\job;
  3. use app\api\model\UserCoupon;
  4. use think\facade\Log;
  5. use think\queue\Job;
  6. class GiveOutCouponToUser
  7. {
  8. public function fire(Job $job, $data){
  9. //....这里执行具体的任务
  10. Log::error('ExecutingJob:'.json_encode($data));
  11. $userCouponM = new UserCoupon;
  12. $flag = $userCouponM->userreceive($data['coupon_id'],$data['user_id']);
  13. Log::error('ExecutedJob:orderId:'.$data['coupon_id'].json_encode($flag));
  14. if ($job->attempts() > 3) {
  15. Log::error('Job retried more than 3 times!orderId:'.$data['coupon_id']);
  16. $job->delete();
  17. }
  18. /* if ($flag == false){
  19. // 也可以重新发布这个任务
  20. $job->release(300); //$delay为延迟时间
  21. }*/
  22. //如果任务执行成功后 记得删除任务,不然这个任务会重复执行,直到达到最大重试次数后失败后,执行failed方法
  23. if ($flag == true){
  24. $job->delete();
  25. }
  26. }
  27. public function failed($data){
  28. // ...任务达到最大重试次数后,失败了,通知管理员
  29. }
  30. }