Twitter の評価制限により、15 分間で 180 件のリクエストが可能です。私はこの実装を行い、タスクを遅らせました。しかし、うまくいかないようです。これの何が問題なの?
私が実装したのは、実際には 180 リクエストの後に 15 分間待機することです。私の実装が正しいかどうか?
var currentRequestIndex = 1;
var timeToDelay = 0;
foreach (var item in items)
{
var contactFeed = item;
if(currentRequestIndex % 180 == 0)
{
timeToDelay = currentRequestIndex*5000;
}
Delay(timeToDelay * 5000).ContinueWith(_ => Task.Factory.StartNew(
() =>
-- call to twitter api here
));
currentRequestIndex++;
}
public Task Delay(int milliseconds)
{
var tcs = new TaskCompletionSource<object>();
new Timer(_ => tcs.SetResult(null)).Change(milliseconds, -1);
return tcs.Task;
}