GrabgiftJob.php 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. <?php
  2. namespace App\Jobs;
  3. use Illuminate\Bus\Queueable;
  4. use Illuminate\Contracts\Queue\ShouldQueue;
  5. use Illuminate\Foundation\Bus\Dispatchable;
  6. use Illuminate\Queue\InteractsWithQueue;
  7. use Illuminate\Queue\SerializesModels;
  8. use Illuminate\Support\Facades\Redis;
  9. use Illuminate\Support\Facades\Log;
  10. use \GatewayClient\Gateway;
  11. class GrabgiftJob implements ShouldQueue
  12. {
  13. use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
  14. protected $params;
  15. protected $redis;
  16. /**
  17. * Create a new job instance.
  18. *
  19. * @return void
  20. */
  21. public function __construct($params)
  22. {
  23. $this->params = $params;
  24. $this->redis = Redis::connection();
  25. Log::info(date('Y-m-d H:i:d').':'.json_encode($params));
  26. }
  27. /**
  28. * Execute the job.
  29. *
  30. * @return void
  31. */
  32. public function handle()
  33. {
  34. $grab_id = $this->params['grab_id'];
  35. $new_grab_id = $this->params['new_grab_id'];
  36. $seat_number = $this->params['seat_number'];
  37. //开奖了,旧的一期结束了
  38. $this->redis->del('ttkge_grabgift_num_'.$grab_id);
  39. $this->redis->del('ttkge_grabgift_data_'.$grab_id);
  40. $this->redis->del('ttkge_grabgift_'.$grab_id);
  41. //新的一期开始了
  42. $this->redis->set('ttkge_grabgift_'.$new_grab_id,$seat_number);
  43. $this->redis->set('ttkge_grabgift_lastgrabid',$new_grab_id);
  44. $this->redis->set('ttkge_grabgift_lock',0);
  45. $data = [
  46. 'grab_id' => $new_grab_id,
  47. 'kge_grabgift_lock' => 0,
  48. ];
  49. $this->sendGrabgift('startnew',$data);
  50. }
  51. /**
  52. * 房间中全民抢礼物,全服通告
  53. */
  54. public function sendGrabgift($type,$data)
  55. {
  56. $messageData = [
  57. 'type' => $type,
  58. 'data' => $data
  59. ];
  60. $Gateway = new Gateway();
  61. $Gateway::$registerAddress = '127.0.0.1:2345';
  62. $Gateway::sendToAll(json_encode($messageData));
  63. }
  64. }