Пропустить часть кода при выполнении в php, чтобы увеличить время выполнения - PullRequest
0 голосов
/ 17 января 2019

Я выполняю простой php-скрипт для вставки около 10-20 полей, используя php, и он работает нормально, его время выполнения составляет около 40 мс. Но теперь, когда я интегрирую sms и почтовый сервис swift, это занимает около 8.40 - 10.2 секунд. я хочу увеличить период выполнения, как я могу это сделать?

  if(isset($_POST["submit"])){
  $hostname='localhost';
  $username='root';
  $password='';

  try {
  $dbh = new PDO("mysql:host=$hostname;dbname=college",$username,$password);

  $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // <== add this line
  $sql = "INSERT INTO students (student_name, student_email, student_city)
  VALUES ('".$_POST["stu_name"]."','".$_POST["stu_email"]."','".$_POST["stu_city"]."')";
    if ($dbh->query($sql)) {
      echo "<script type= 'text/javascript'>alert('New Record Inserted Successfully');</script>";

      // this part of code takes a lot to execute
      $hello_form_submit_body = 'test mail';
      send_mail($hello_form_submit_subject, $_POST["stu_email", $_POST["stu_name"], $hello_form_submit_body, 'test mail', $hello_id, 'hello');

      /*send sms*/
      $sms_body = "Thank You, Your hello application has been submitted with ORDER ID (".$data_hello['hello_order_no']."), please complete your payment here (".$button_link.")";
      sms($data_hello['hello_mobile_no'], $sms_body, 'OLhello');


    }
    else{
      echo "<script type= 'text/javascript'>alert('Data not successfully Inserted.');</script>";
    }

    $dbh = null;
  }
  catch(PDOException $e) {
    echo $e->getMessage();
  }

}



/*Functions Used*/
function sms($number, $message, $sender_id){
  //code to send sms
}

function send_mail($subject, $to, $to_name, $body, $sender_name, $id, $service){
  //swift mailer code to send mail using smtp
}

есть ли способ, которым я могу пропустить время выполнения этого кода и продолжить выполнение остальных, как если бы мне было все равно, будет ли отправлена ​​смс или отправлено письмо, я просто хочу увеличить время исполнения с помощью смс и функции отправки почты выполнены, или, пожалуйста, предложите что-то вроде: я отправлю запрос в файл, который будет выполнять эти функции, и я продолжу, не дожидаясь ответа этих функций.

1 Ответ

0 голосов
/ 17 января 2019

Несмотря на то, что существует множество решений, простейшее, вероятно, состоит в том, чтобы разветвить ваш процесс и позволить ребенку отправлять почту и умирать, в то время как родительский процесс выполняет оставшуюся часть сценария

$sms_body = "Thank You, Your hello application has been submitted with ORDER ID (".$data_hello['hello_order_no']."), please complete your payment here (".$button_link.")";
  if(!pcntl_fork())
  {sms($data_hello['hello_mobile_no'], $sms_body, 'OLhello');
  exit;
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...