0

私は現在、Twitter API への非常に多くの呼び出しを必要とする Java アプリケーションを作成しています。このため、レート制限を超えることを心配する必要があります。14 分間に 180 回の呼び出しを行うことができることがわかりました。API への呼び出しを再開するには、しばらく待つ必要があります (この数はアプリケーションで返されます)。そのため、呼び出しが特定の数に達すると、スレッドがスリープ状態になります。私の意図は、sleep() が終了したときにスレッドが中断したところから自動的に再開することです。これは機能しますか、それとも CPU スケジューリングなどについて心配する必要がありますか!?

睡眠の仕組みを完全には理解していないのかもしれません。私がやっていることが正しいかどうかを確認することは、どんな助けでも大歓迎です。ありがとうございました!

以下は、数行の疑似コードです。

for (int i = 0; i < arr.length; i++) 
{
    if (calls are a certain number) 
    {
        Thread.sleep(840*1000);
        continue;
    }
      //CALL TO METHOD THAT REQUESTS INFORMATION FROM TWITTER API
}
4

2 に答える 2

0

IIRC、Java では、タイムアウトで object.wait() を実行できます。これはあなたが望むものではありませんか?別のスレッドからタイムアウトを変更したい場合は、いくつかの「waitValue」変数と notify() を変更します。スレッドは「すぐに」実行され、新しいタイムアウト値で再び待機します。明示的なスリープは必要ありません。

于 2014-12-31T07:19:53.693 に答える