Twitter APIとやり取りする以下のセロリタスク(簡略化)があります。セロリタスクが実行されている間にセカリタスクを停止し、しばらくしてから実行を続行する方法はありますか?
@app.task
def get_followers(screen_name, **kwargs):
cursor = kwargs.get('cursor', -1)
followers = kwargs.get('followers', [])
while True:
response = twitter_api.call('followers', 'ids', screen_name=screen_name, cursor=cursor)
if response.status_code == '429': # RATE LIMIT EXCEEDED
# do something here
cursor = response.json()['next_cursor']
if cursor == 0: # we're done
break
return followers
私はレート制限がヒットしたいくつかの時間のためのタスクを一時停止し、それが停止した時点から実行を再開できるようにしたいです。 (あるいは、エラーを投げてタスクを再試行し、追加のkwargを渡してください)。これはどのように達成できますか?
チェックこの:http://python-twitter.readthedocs.io/en /latest/rate_limits.html – MYGz
そしてこれは:https://dev.twitter.com/rest/public/rate-limiting – MYGz
@ mohammad-yusuf-ghazi私はこれらのページについて知っています、私は特にここのセロリの部分に興味があります。私が理解している限り、私が 'sleep_on_rate_limit = True'を持っていて、レート制限を超過すれば、タスクはちょうど"そこにぶら下がって "次の15分間のワーカープールのスペースを消費します。 –