ソケット-PHPを使用したデータの収集と処理(Twitter Streaming API)
すべてのTwitterストリーミングAPIとPhirehose PHPのドキュメントを読んだ後、まだ行っていないことを見つけました。データを個別に収集して処理します。
その背後にあるロジックは、私が正しく理解していれば、収集プロセスをバックアップする処理フェーズでのログジャムを防ぐことです。以前に例を見たことがありますが、基本的には収集直後にMySQLデータベースに直接書き込みます。これは、Twitterが推奨する方法に反しているようです。
アドバイス/ヘルプが欲しいのは、これを処理するための最良の方法とその方法です。すべてのデータを直接テキストファイルに書き込んでから、別の関数で解析/処理することをお勧めしているようです。しかし、この方法では、メモリを大量に消費する可能性があると思います。
ここに問題があります。すべてデーモン/バックグラウンドプロセスとして実行されます。では、このような問題、より具体的にはTwitterphirehoseライブラリを解決した経験はありますか?ありがとう!
いくつかのメモ: *接続はソケットを介して行われるので、ファイルは常に追加されると思いますか?誰かがそれについてフィードバックを持っているかどうかわからない
答え :
解決策:
ファイアホースライブラリには、これを行う方法の例が付属しています。参照:
- 収集: https://github.com/fennb/phirehose/blob/master/example/ghetto-queue-collect.php
- 消費: https://github.com/fennb/phirehose/blob/master/example/ghetto-queue-consume.php
これはフラットファイルを使用します。これは非常にスケーラブルで高速です。つまり、平均的なハードディスクは40MB / s以上で順次書き込みが可能で、直線的にスケーリングします(つまり、データベースとは異なり、大きくなっても速度が低下しません)。 。
ストリームを使用するためにデータベース機能は必要ありません(つまり、次のツイートが必要なだけで、「クエリ」は必要ありません)。
ファイルをかなり頻繁にローテーションすると、(必要に応じて)ほぼリアルタイムのパフォーマンスが得られます。
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。