GoESL (https://www.php.cn/link/d9b64cee05c46d31b10b9869a3198a6d) を Temporal と統合して、FreeSWITCH ダイヤル経由で自動化しています。この設定では、1,000 の同時チャネルと 1 秒あたり 50 の呼び出し (CPS) が可能です。ダイヤルを試行するたびに、アクティビティを通じて通話を開始する一時的なワークフローが開始されます。
96 回の通話 (可変数値) が正常に開始されると、FreeSWITCH はそれ以上の通話を処理しなくなります。 CLI にはログはなく、イベント ソケット レイヤーにはさらなる試行を示すイベントはありません。ただし、Temporal Worker を停止すると、以前に「スタック」した呼び出しが FreeSWITCH CLI に表示され、GoESL クライアントによってキューに入れられていることを示します。ワーカーがメイン ワークフローの起動を続けているため、スタックしていないことが確認できます。
以下は関連するコード スニペットです:
リード処理ループ:
リーリーダイヤルアップ ガイダンス ロジック:
リーリーワークフロー関数の呼び出し:
リーリー通話開始アクティビティを順番に実行します:
リーリーGoESL または Temporal を使用しているときに、呼び出しがキューに入れられ、特定の時点を超えると実行されなくなるという同様の問題に遭遇した人はいますか?この状況をデバッグする方法、または一時ワーカー スレッドを強制終了するとキューに入れられた呼び出しの処理がトリガーされる理由について何か提案はありますか?
私が試したこと:
workflow.Sleep
の期間を数ミリ秒から 5 ~ 10 秒に変更して、問題の原因がネットワーク遅延でないことを確認します。 GoESL ソフトウェア パッケージを変更することを決定しました (https://www.php.cn/link/d9b64cee05c46d31b10b9869a3198a6d) ) 異なる GoESL パッケージ (https://www.php.cn/link/8c8566b78ac2b99c542bef8c37cac179) を使用すると、問題は解決されました。初期の GoESL パッケージの根本的な問題のようです。
将来誰かが同じ問題に遭遇した場合に備えて、ここ (https://github.com/0x19/goesl/issues/40) で Github リポジトリに問題をオープンしました。
以上がGoESL 対 Temporal: 通話は FreeSWITCH の特定のポイントから発信されていませんの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。