MiaoshaPushSubscribe.php 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. <?php
  2. namespace app\job;
  3. use think\facade\Log;
  4. use think\queue\Job;
  5. use app\api\model\subscribe\WechatSub;
  6. use app\common\model\ms\MsActivityGood;
  7. class MiaoshaPushSubscribe
  8. {
  9. public function fire(Job $job=null, $data){
  10. //....这里执行具体的任务
  11. Log::error('ExecutingJob:'.json_encode($data));
  12. $user_id = $data['user_id'];
  13. $ms_id = $data['ms_id'];
  14. $wechatSub = new WechatSub('miaosha');
  15. $msGoods = MsActivityGood::where('id',$ms_id)->find();
  16. //推送
  17. if($msGoods){
  18. Log::error("ExecutingJob 2");
  19. $thing1 = $msGoods->goods_name;
  20. $amount2 =$msGoods->ms_price;
  21. $time3 = substr($msGoods->start_time,0,15);
  22. $think4 = '距离秒杀开始还有5分钟';
  23. $page = 'pages/activity/pages/seckill/index/index?activityId='.$msGoods->ms_activity_id.'&share="xcx"';
  24. $pdata =['thing1'=>["value"=>$thing1],'amount2'=>["value"=>$amount2],'time3'=>["value"=>$time3],'thing4'=>["value"=>$think4]];
  25. Log::error("ExecutingJob push start");
  26. $key = $wechatSub->getMiaoShaKey($user_id,$data['template_id'],$data['ms_activity_id']);
  27. $res = $wechatSub->pushSubByKey($user_id,$page,$pdata,$key);
  28. Log::error("ExecutingJob push end");
  29. //如果任务执行成功后 记得删除任务,不然这个任务会重复执行,直到达到最大重试次数后失败后,执行failed方法
  30. $log = 'miao sha res:'.json_encode($res).'data:'.json_encode($pdata);
  31. // log_record($log);
  32. Log::error("res".$log);
  33. }
  34. Log::error("ExecutingJob finish");
  35. $flag = true;
  36. if ($job&&$job->attempts() > 3 ) {
  37. $job->delete();
  38. }
  39. if ($job&&$flag == true){
  40. $job->delete();
  41. }
  42. }
  43. public function failed($data){
  44. // ...任务达到最大重试次数后,失败了,通知管理员
  45. }
  46. }