0

私が何か間違ったことをしているのか、それとも Twilio がレコードを要求するのが自然に遅いだけなのかはわかりません。PHP で会議のリストを要求すると、応答に 5 ~ 7 分かかる場合があり、どのタイプのアプリケーションでも実行可能とは思えません。

ここに私が使用しているコードのサンプルがあります:

$conferences = $client->account->conferences->getIterator(0, 50, array(
    ));
    foreach ($conferences as $conference) {
        $conferenceRoom = $client->account->conferences->get($conference->sid);
        $date1 = new DateTime($conference->date_created);
        $date2 = new DateTime($conference->date_updated);
        $interval = $date1->diff($date2);
        $page = $conferenceRoom->participants->getPage(0, 50);
        $participants = $page->participants;
        $participantCount = count($participants);
        $result['conferences'][$conference->sid]['friendly_name'] = $conference->friendly_name;
        $result['conferences'][$conference->sid]['sid']           = $conference->sid;
        $result['conferences'][$conference->sid]['participants']  = $participantCount;
        $result['conferences'][$conference->sid]['status']        = $conference->status;
        $result['conferences'][$conference->sid]['duration']      = $interval->format('%H:%I:%S%');
        $result['conferences'][$conference->sid]['date_created']  = strtotime($conference->date_created);
        $result['conferences'][$conference->sid]['date']          = $conference->date_created;
}
echo json_encode($result);
4

2 に答える 2

1

Twilio 開発者エバンジェリストはこちら。

getIteratorPHP ライブラリの Conferences リソースのメソッドを使用しています。getIteratorページネーションを処理するインターレーターを返すので、ループを続けている限り、Twilio API からページを要求し続けます。私の推測では、あなたはたくさんの会議を行ってきたので、しばらくページングを続けていると思います。

また、会議ごとに、会議リソースに対して API 呼び出しを行い、通話の参加者に対して別の API 呼び出しを行います。アカウントに 10 件の会議しかない場合でも、30 回の API 呼び出しを行うことになります。

そのため、Twilio が 1 つの応答を返すのに 5 ~ 7 分もかからない一方で、スクリプトは API で非常に多くの作業を行っているため、時間がかかります。

結果をキャッシュするという Half Crazed (ちなみに偉大な名前) の提案に同意します。通話のイベント コールバック URL を設定することで、独自のシステムで会議オブジェクトを更新できます。これにより、Twilio が電話会議に関するステータスの更新を送信し、その時点で詳細を保存できます。

于 2015-07-21T17:39:31.770 に答える
0

コードに問題はないと思いますが、API を扱うときは、通常、別のサービス (CRON ジョブや別のスレッドなど) を使用して API を呼び出し、結果をキャッシュすることをお勧めします。ライブ アプリケーションは、キャッシュされた結果から読み取ります。このようにして、サイトの速度はサード パーティのサイトの影響を受けません。「結果は XYZ で最後に更新されました」のような小さなメモを表示することをお勧めします。

読み込みの遅いページが良くない理由はたくさんあります。

于 2015-07-21T16:57:00.207 に答える