私は主にツールを作るインターネットマーケティング会社のプログラマーです。これらのツールには、認証者の要件があります。
- それらはブラウザで実行され、それらすべてで動作する必要があります。
- ユーザーは処理するもの(.csv)をアップロードするか、URLを提供し、API呼び出しを行ってそれに関する情報を取得します。
- 彼らは何千行ものデータを移動しています(大規模なデータベースを考えてみてください)。これらのツールは文字通り何時間も、通常は一晩実行されます。
- ユーザーは、情報が処理されて提示されるときに、ライブで視聴できる必要があります。
現在、PHP、MySQL、Ajaxで書いています。
私の質問は、大量のデータを処理し、ツールの実行中にユーザーエクスペリエンスを提供するにはどうすればよいかということです。現在、私はajax呼び出しを送信し、行をテーブルに挿入したり、データをdivに挿入したりするカスタムキューシステムを使用しています。
この方法はお尻の大きな痛みであり、おそらく正しい方法ではありませんでした。テンプレートシステムを使用する必要がありますか、それとも大量のデータでページのチャンクを更新するためのより良い方法がありますか。そして、PHPメモリの最大化に近づき、常に探しているものであるため、私は本当に多くのデータを意味します。
また、これらのツールがサーバー上で単独で実行できるようにしたいと思います。つまり、.csvをアップロードしてブラウザウィンドウを閉じ、ツールが完了したらユーザーにメールを送信します。
.ajax呼び出しを使用するよりも優れたメソッド(プログラミング標準)を誰かが持っていますか?ありがとうございました。
誰かが同じ質問をする場合に備えて、いくつかのメモで更新したいと思いました。私は次のことを調べて、どれが最良の解決策であるかを調べています。
- SlickGrid / DataTables
- GearMan
- Webソケット
- ラチェット
- Node.js
これらは特定の順序ではなく、私が選択するものは、私の問題に有効なものと、私の部門の他のメンバーが使用できるものに基づいています。ゴールデンフレームワークを選んだら更新します。