0

サーバー上で 1 分 (多かれ少なかれ) ごとに実行されるプロシージャを作成しようとしています。cronjob で達成できることはわかっていますが、心配です。約 1000 のタスク (システムが 1 分ごとにチェックする必要のある 1000 人のユーザー) があるとします。

このシステムは、Google Adwords API からのデータを同期し、それを使用して何かを行うことになっています。たとえば、Google からキャンペーンを読み取り、1000 インプレッションまたはクリックごとに何かを実行する必要があります。したがって、リアルタイムで統計情報を表示するには、AdWords API への接続を継続する必要があります。この手順を 1000 人の登録ユーザーで実行する必要があると想像してください。

1 分ごとに重いループを実行する必要がある場合、どのテクノロジを使用すればよいですか? どうもありがとう、オロン

4

4 に答える 4

0

あなたがやろうとしていることには 2 つの根本的な問題があります。最初の 1 つは他より深刻です。

あなたができることは、レポートを実行したい時間枠 (例: 2 時間に 1 回) を選択し、そのスケジュールに従うことです。大まかな見積もりを行うには、10 個のレポートを並行して実行し、レポートのダウンロードと解析に 10 秒かかると仮定します (1 レポート/秒のスループットが得られますが、これはインターネット接続の速度、負荷に厳密に依存します)。 AdWords API サーバーの場合、クライアントの規模、データをリクエストしている列とセグメンテーション、日付範囲など。大規模なクライアントの場合、タイミングはレポートごとに数分で簡単に実行される可能性があります)、1,000 アカウントのみを時間は20~30分。

  • もっと速くしたかったとしても、AdWords API ではそれができません。非常に短い期間にあまりにも多くの呼び出しを行おうとすると、API 呼び出しレートを制限するレート制限メカニズムがあります。詳細については、 http://adwordsapi.blogspot.com/2010/06/better-know-error-rateexceedederror.htmlをご覧ください。

Adwords API の公式フォーラム ( https://groups.google.com/forum/?fromgroups#!forum/adwords-api ) でこの質問をすることをお勧めします。以前に同様の問題に取り組んだユーザーを確実に見つけることができます。

于 2012-06-27T05:53:37.023 に答える
0

理想的には、分散ワークフローを使用している場合は、この方法で複数のユーザーにサービスを提供することをお勧めします。

于 2012-06-20T12:43:43.937 に答える
0

自由に利用できるテクノロジは多数ありますが、十分な情報が提供されていない場合に役立つ特定のテクノロジを特定することは困難です。

于 2012-06-20T13:02:56.660 に答える
-3

ループの最後の実行のタイムスタンプを含む変数を安全にすることができます。ユーザーがページにアクセスしたときに、タイムスタンプが 1 分より古いかどうかを確認します。彼が年上である場合は、ループを実行してすべてのユーザーを確認してください。

そのため、サイトにユーザーがいる場合にのみループが実行されます。これにより、サーバーのパフォーマンスが大幅に節約されます。

于 2012-06-20T12:47:09.363 に答える