Adding feed update history. Gotta get some metrics on the speed of the biggest cpu/network suck.

This commit is contained in:
Samuel Clay 2010-04-23 21:19:19 -04:00
parent 37743431be
commit 0a664b44a8
3 changed files with 22 additions and 3 deletions

View file

@ -46,7 +46,7 @@ class Command(BaseCommand):
for feed in feeds:
feeds_queue[i%num_workers].append(feed)
i += 1
disp.add_jobs(feeds_queue)
disp.add_jobs(feeds_queue, i)
print "Running jobs..."
disp.run_jobs()

View file

@ -344,3 +344,15 @@ class Story(models.Model):
db_table="stories"
ordering=["-story_date"]
class FeedUpdateHistory(models.Model):
fetch_date = models.DateTimeField(default=datetime.datetime.now)
number_of_feeds = models.IntegerField()
seconds_taken = models.IntegerField()
def __unicode__(self):
return "[%s] %s feeds: %s seconds" % (
fetch_date.strftime('%F %d'),
self.number_of_feeds,
self.seconds_taken,
)

View file

@ -1,4 +1,4 @@
from apps.rss_feeds.models import Story
from apps.rss_feeds.models import Story, FeedUpdateHistory
from django.core.cache import cache
from apps.reader.models import UserSubscription, UserStory
from apps.rss_feeds.importer import PageImporter
@ -327,10 +327,11 @@ class Dispatcher:
print "---> DONE WITH PROCESS: %s" % current_process.name
sys.exit()
def add_jobs(self, feeds_queue):
def add_jobs(self, feeds_queue, feeds_count):
""" adds a feed processing job to the pool
"""
self.feeds_queue = feeds_queue
self.feeds_count = feeds_count
def run_jobs(self):
if self.options['single_threaded']:
@ -360,6 +361,12 @@ class Dispatcher:
for key in self.entry_keys)
))
print done
time_taken = datetime.datetime.now() - self.time_start
history = FeedUpdateHistory(
number_of_feeds=self.feeds_count,
seconds_taken=time_taken.seconds
)
history.save()
logging.info(done)
return