2017-07-06 6 views
0

最近、私が以前に持っていなかった電信ボットapiの問題に直面しています... Webhook接続方法を使用してボットリクエストを捕捉し、トリガーされたスクリプトは処理を完了するのに1分以上かかります。約1ヶ月前にすべてがうまく動いていて、スクリプトが完全に実行されるのに十分長い時間待機していましたが、今は接続が中断されており、電文のapiでWebhookエラーが表示されています.60秒後に "Read timeout expired"私のサーバーがあまりにも多くのオープンなエントリで過負荷になるまで、これらは続行されます...私はすでにconnection-handlingを試しましたが、私の接続はブラウザの終わりではないので役に立たないようでした。私はそれがWebhookの設定そのものと関係があるはずですが、私はそれを把握できません...任意のアイデアですか?ここで実行時間60秒後にWebhookが "Read timeout expired"エラーに遭遇しました

はあなたの姿を与えることができるものです:

私のコード:上記のスクリプトを実行しているのは60秒後に私のウェブフックの状態に

<?php 

...running hundreds of thousands of multi-curl requests that take 10 min for example 
...or/ sleep(61); 
...or/ basically anything that takes more than 60 seconds to run 

?> 

電報の応答:

{ "ok":true、 "result":{"url": "https://????.com/??.php"、 "has_custom_certificate":false、 "pending_update_count":1、 "last_error_date":1499351442、 "last_error_message": "読み取りタイムアウトが満了しました"、 "max_connections" :40}}

+0

ようこそ!次の投稿を確認し、質問を適切に更新してください: https://stackoverflow.com/help/how-to-ask – garfbradaz

+1

ちょっとgarfbradaz、tnx!私は事前にマニュアルを読んで、それに応じて私の投稿を書こうとしましたが、とにかく初心者です...あなたはもっと具体的になることができますか? –

+0

Hey @Samuel - あなたが試したいくつかのサンプルコードと経験したエラーを投稿してください。それは、あなたがそれをうまくやったことを示して、あなたが間違っているところを示すのを助けます。幸運とSOのコミュニティをお楽しみください。 – garfbradaz

答えて

0

これは私のスクリプトの上部に書いたコードです。テレグラムに応答して待機し、スクリプトは処理を続行します。

<?php 
    set_time_limit(0); 
    ignore_user_abort(true); 
    $out = json_encode([ 
     'method'=>'sendMessage', 
     'chat_id'=>$my_chat_id, 
     'text'=> "Starting process..." 
     ]); 
    echo $out; 
    header('Connection: close'); 
    header('Content-Length: '.strlen($out)); 
    header("Content-type:application/json"); 
    flush(); 
    if (function_exists('fastcgi_finish_request')) { 
     fastcgi_finish_request(); 
    } 
関連する問題