Rumah  >  Soal Jawab  >  teks badan

Teruskan memproses php selepas menghantar respons http

<p>Skrip saya dipanggil oleh pelayan. Saya akan menerima <kod>ID_OF_MESSAGE</kod> dan <kod>TEXT_OF_MESSAGE</kod> </p> <p>Dalam skrip saya, saya akan memproses teks masuk dan menjana respons menggunakan parameter: <kod>JAWAPAN_TO_ID</kod> dan <kod>RESPONSE_MESSAGE</kod>. </p> <p>Masalahnya ialah saya menghantar respons kepada <kod>"ID_OF_MESSAGE"</code> yang masuk, tetapi pelayan yang menghantar mesej kepada saya untuk pemprosesan menetapkan mesejnya untuk dihantar kepada saya (yang bermaksud Jadi saya boleh menghantar responsnya kepada ID itu) selepas menerima respons http 200. </p> <p>Satu penyelesaian ialah menyimpan mesej ke pangkalan data dan mencipta beberapa cron yang berjalan setiap minit, tetapi saya memerlukan mesej respons dijana dengan segera. </p> <p>Adakah terdapat beberapa penyelesaian bagaimana untuk menghantar ke pelayan http respon 200 dan terus melaksanakan skrip php? </p> <p>Terima kasih banyak</p>
P粉029327711P粉029327711441 hari yang lalu608

membalas semua(1)saya akan balas

  • P粉351138462

    P粉3511384622023-08-28 17:34:11

    Ya. Anda boleh melakukan ini:

    ignore_user_abort(true);//not required
    set_time_limit(0);
    
    ob_start();
    // do initial processing here
    echo $response; // send the response
    header('Connection: close');
    header('Content-Length: '.ob_get_length());
    ob_end_flush();
    @ob_flush();
    flush();
    fastcgi_finish_request();//required for PHP-FPM (PHP > 5.3.3)
    
    // now the request is sent to the browser, but the script is still running
    // so, you can continue...
    
    die(); //a must especially if set_time_limit=0 is used and the task ends
    

    balas
    0
  • Batalbalas