SendDataJob.php 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. <?php
  2. namespace App\Jobs;
  3. use App\Service\ClearDataService;
  4. use Illuminate\Bus\Queueable;
  5. use Illuminate\Contracts\Queue\ShouldQueue;
  6. use Illuminate\Foundation\Bus\Dispatchable;
  7. use Illuminate\Queue\InteractsWithQueue;
  8. use Illuminate\Queue\SerializesModels;
  9. use Illuminate\Support\Facades\Log;
  10. use Illuminate\Console\Command;
  11. use Symfony\Component\Console\Input\InputInterface;
  12. use Symfony\Component\Console\Output\ConsoleOutput;
  13. use Symfony\Component\Console\Output\OutputInterface;
  14. class SendDataJob implements ShouldQueue
  15. {
  16. use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
  17. protected $data;
  18. /**
  19. * Create a new job instance.
  20. *
  21. * @return void
  22. */
  23. public function __construct($data)
  24. {
  25. $this->data = $data;
  26. }
  27. /**
  28. * Execute the job.
  29. *
  30. * @return void
  31. */
  32. public function handle()
  33. {
  34. file_put_contents('record2.txt',json_encode($this->data) .PHP_EOL,8);
  35. //数据要发送的地址
  36. $url = ClearDataService::getUrl($this->data);
  37. if(! empty($url)){
  38. $return = $this->sendRequest($url,$this->data);
  39. }
  40. // file_put_contents('send.txt',json_encode($return) .PHP_EOL,8);
  41. //输出信息 测试
  42. $this->echoMessage(new ConsoleOutput());
  43. }
  44. private function sendRequest($url,$data){
  45. $data = json_encode($data);
  46. $header[] = "Content-Type:application/json";
  47. $ch=curl_init($url);
  48. curl_setopt($ch,CURLOPT_POST,1);
  49. curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
  50. curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
  51. curl_setopt($ch,CURLOPT_HTTPHEADER,$header);
  52. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
  53. curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
  54. $response=curl_exec($ch);
  55. $response=json_decode($response,true);
  56. if(curl_errno($ch) ){
  57. sc(curl_error($ch));
  58. }
  59. return $response;
  60. }
  61. protected function echoMessage(OutputInterface $output)
  62. {
  63. $output->writeln('发送结束');
  64. }
  65. }