私はASIHTTPRequest
を使用してキューに100個以上の保留中の要求を送信していますが、1つのIPが1分に5個以上の要求を送信できないという制限があります。 ASIHTTPRequest
とASINetworkQueue
を使用するにはどうすればよいですか?思考?1分以内に5リクエスト未満を確実に送信する方法。
ありがとうございます。
かい。
私はASIHTTPRequest
を使用してキューに100個以上の保留中の要求を送信していますが、1つのIPが1分に5個以上の要求を送信できないという制限があります。 ASIHTTPRequest
とASINetworkQueue
を使用するにはどうすればよいですか?思考?1分以内に5リクエスト未満を確実に送信する方法。
ありがとうございます。
かい。
私はASINetowrkQueueのNSOperationQueueいずれかを使用すると、2つのオプションがありますので、直接これをやらせるとは思わない:
解決策2)は、ASIコードを掘り出す必要がないために簡単ですが、1)間違いなくクリーナーであり、私が確かに見つけた他の人とコードを共有することができますそれは便利です。
あなたのリクエストを作成してAVMutableArrayに格納し、あなたのリクエストがある場合は15秒(15 * 5 = 60)ごとにチェックするタイマーを持つよりも簡単です。あなたが置くサーバーに送信するのではなく、あなたの要求を作成するときよりも
@@synthesize queueTimer = _queueTimer;
@@synthesize requestsQueue = _requestsQueue;
- (void)viewDidLoad:
{
self.requestsQueue = [NSMutableArray array];
self.queueTimer = [NSTimer timerWithTimeInterval:15 target:self selector:@selector(sendRequest) userInfo:nil repeats:YES];
}
:あなたの時間のファイルの例では、あなたがよりこれを書くべきあなたメートルファイルで
@property (nonatomic, retain) NSTimer *queueTimer;
@property (nonatomic, retain) NSMutableArray *requestsQueue;
- (void)sendRequest;
のようなものを持つことができます
:ここ[self.requestsQueue addObject:request];
そして、この配列内のそれらはsendRequest
方法であり、
はまた、そのような
[queueTimer invalidate];
は、この情報がお役に立てば幸いとして、タイマーを無効にするために、あなたのdeallocメソッドでは忘れないでください。何かが間違っていたら教えてください。