Celery v0.9.3 (unstable) documentation
With an iterator yielding task args, kwargs tuples, evenly distribute the processing of its tasks throughout the time window available.
Parameters: |
|
---|
Example
>>> class RefreshAllFeeds(Task):
...
... def run(self, **kwargs):
... feeds = Feed.objects.all()
... total = feeds.count()
...
... time_window = REFRESH_FEEDS_EVERY_INTERVAL_MINUTES
...
... def iter_feed_task_args(iterable):
... for feed in iterable:
... yield ([feed.feed_url], {}) # args, kwargs tuple
...
... it = iter_feed_task_args(feeds.iterator())
...
... even_time_distribution(RefreshFeedTask, total,
... time_window, it)