From 852b6a544193a8fb1f916e0602163a1ab243721f Mon Sep 17 00:00:00 2001 From: Samuel Clay Date: Tue, 31 Aug 2010 22:00:46 -0400 Subject: [PATCH] Adding new celery command line option to fetch feeds. Will be used to fetch feeds on a cronjob. --- .../management/commands/task_feeds.py | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 apps/rss_feeds/management/commands/task_feeds.py diff --git a/apps/rss_feeds/management/commands/task_feeds.py b/apps/rss_feeds/management/commands/task_feeds.py new file mode 100644 index 000000000..a22c8cd29 --- /dev/null +++ b/apps/rss_feeds/management/commands/task_feeds.py @@ -0,0 +1,30 @@ +from django.core.management.base import BaseCommand +from django.conf import settings +from apps.rss_feeds.models import Feed +from optparse import make_option +from apps.rss_feeds.tasks import RefreshFeed +import datetime + + +class Command(BaseCommand): + option_list = BaseCommand.option_list + ( + make_option("-f", "--feed", default=None), + make_option("-F", "--force", dest="force", action="store_true"), + make_option('-V', '--verbose', action='store_true', + dest='verbose', default=False, help='Verbose output.'), + ) + + def handle(self, *args, **options): + settings.LOG_TO_STREAM = True + now = datetime.datetime.now() + + feeds = Feed.objects.filter(next_scheduled_update__lte=now).order_by('?') + + if options['force']: + feeds = Feed.objects.all() + + print " ---> Tasking %s feeds..." % feeds.count() + + for f in feeds: + RefreshFeed.apply_async(args=(f.pk,)) + \ No newline at end of file