Как бороться с запуском скрипта, который занимает 5 - 10 минут? - PullRequest
0 голосов
/ 08 мая 2019

У меня есть скрипт, который содержит от 5 до 10 заданий, и в общей сложности это занимает 5-10 минут, используя Laravel 5.7 + Angular7.

Запуск задания в одиночку (который занимает около 1 - 2 минут), Angular и Laravel работают нормально.

Запустив все задания вместе, Angular получит 500 ошибок.

Я пытался добавить эту команду в Laravel, и Laravel иногда работает

set_time_limit(20000);

Как решить проблему?

Угловая:

  this.UploadstatusInboundataExcel = {status: '', message: ''};
  const InboundData = new FormData();
  InboundData.append('InboundData', this.selectedInboundDataFile, this.selectedInboundDataFile.name);
  this.inbounddataservice.importInboundData(InboundData)
  .subscribe(
    events => { 
      this.UploadstatusInboundataExcel = events;
      if (this.UploadstatusInboundataExcel) {
        if (this.UploadstatusInboundataExcel.status='Success') {
          this.resultForDsec = 'DSEC Excel Upload completed.'
        }
      }
    },
    err => {
      {
        this.UploadstatusInboundataExcel = {status: 'Error', message: 'Error: ' + err.name};
        console.log(this.UploadstatusInboundataExcel);
      }
    }
  );

  importInboundData(formData) {
    return this.http.post( this.createmultidataUrl , formData, {
      reportProgress: true,
      observe: 'events'
    }).pipe(
      map(event => 
        this.getEventMessage(event, formData),
        )
    );
  }

Laravel:

public function uploadDatabyExcel(Request $request) {

    set_time_limit(20000);

    $result = array(
        'result'=> array(
            'InboundNationality' => '',
            'InboundAir' => '',
            'InboundSea' => '',
            'InboundLand' => '',
            'InboundProvince' => ''
        )
    );

     $result['result']['InboundNationality'] = $this->importInboundNationality($request);
     $result['result']['InboundSea'] = $this->importInboundSea($request);
     $result['result']['InboundLand'] = $this->importInboundLand($request);
     $result['result']['InboundAir'] = $this->importInboundAir($request);
     $result['result']['InboundProvince'] = $this->importInboundProvince($request);

    return response()->json($result, 200);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...