0

現在、顧客がサインアップした後に音声ブロードキャストをトリガーするステップを含むスクリプトがあります。callfire への nsoap 呼び出しです。

そこでの待ち時間はかなり長く、1 秒未満のサインアップ プロセスに約 2 秒追加されます。その結果、サインアップボタンを複数回押す人がいます。

結果を待たずに先に進むようにアプリに指示する方法はありますか?

すべてのnusoapコードを別のファイルに入れ、そのファイルへのソケットを開くことでごまかすことができますが、私はよりクリーンな方法を探しています。

または、結果を待たずに関数を起動する方法はありますか? ないと思います。

4

4 に答える 4

0

ブラウザから Ajax リクエストを実行することを考えるかもしれません。

  • ユーザーのサインイン
  • 彼はページにリダイレクトされます (たとえば、彼のアカウント ページ)
  • そのページには、サーバー上の PHP スクリプトへの Ajax 呼び出しがあり、SOAP 呼び出しを行います。

これはよく耳にするアイデアだと思います...しかし、ユーザーはJavascriptを有効にする必要があり、常にうまく機能するとは限りません(Ajaxリクエストが終了する前にユーザーがページを離れたらどうなるでしょうか?)

私見、最良の(より安全で、常に機能し、クライアントに依存しない...)方法は、ポールが提案したように、実際にはいくつかのリクエストキューを使用することです.
それが私が選ぶ解決策です。

しかし、もちろん、ユーザーがサインインしてからリクエストが送信されるまでに多少の遅延が発生します...しかし、それはそれほど悪いことでしょうか?

于 2009-08-06T16:13:42.697 に答える
0

「すぐに」ではなく「すぐに」実行する必要があるアクションがある場合は、それを何らかのキュー (データベース テーブルなど) に追加します。

次に、約 1 分おきに cron ジョブを実行し、このキューにあるタスクを実行します。

于 2009-08-06T16:08:54.673 に答える
0

私の知る限り、関数を直接起動して実行チェーンでそれを通過する方法はありません...しかし、クールでシンプルな解決策がいくつかあります。

  • あなたが言ったように、コードを別のファイルに入れて、そのように起動します... shell_execコマンドを使用して実行し、nohupしてバックグラウンドで実行しましたが
  • ポールが述べたようにキューを作成します
  • Gearman ( http://www.danga.com/gearman/ ) のようなものを調べてください... Digg は、それを操作するための優れた PEAR ライブラリを作成しました。ギアマンはおそらく少しやり過ぎですが、言うまでもなくクールすぎます :)
于 2009-08-06T16:10:43.657 に答える