Back to square 1 on optimizing the DB queries.

This commit is contained in:
Samuel Clay 2010-08-19 23:18:11 -04:00
parent fc18a1f19c
commit a3025a2df7
2 changed files with 13 additions and 3 deletions

View file

@ -212,11 +212,16 @@ def load_single_feed(request):
feed = Feed.objects.get(id=feed_id)
force_update = request.GET.get('force_update', False)
now = datetime.datetime.now()
logging.info(" ---> [%s] Loading feed #1: %s" % (request.user, feed.feed_title))
stories = feed.get_stories(offset, limit)
if force_update:
feed.update(force_update)
logging.info(" ---> [%s] Loading feed #2: %s" % (request.user, datetime.datetime.now()-now))
# Get intelligence classifier for user
classifier_feeds = ClassifierFeed.objects.filter(user=user, feed=feed)
classifier_authors = ClassifierAuthor.objects.filter(user=user, feed=feed)
@ -230,8 +235,9 @@ def load_single_feed(request):
logging.info(" ***> [%s] UserSub DNE, creating: %s" % (user, feed))
usersub = UserSubscription.objects.create(user=user, feed=feed)
logging.info(" ---> [%s] Loading feed: %s" % (request.user, feed.feed_title))
logging.info(" ---> [%s] Loading feed #3: %s" % (request.user, datetime.datetime.now()-now))
if stories:
last_read_date = stories[-1]['story_date']
else:
@ -258,6 +264,7 @@ def load_single_feed(request):
'title': apply_classifier_titles(classifier_titles, story),
}
logging.info(" ---> [%s] Loading feed #4: %s" % (request.user, datetime.datetime.now()-now))
# Intelligence
feed_tags = json.decode(feed.popular_tags) if feed.popular_tags else []
@ -268,6 +275,8 @@ def load_single_feed(request):
usersub.feed_opens += 1
usersub.save()
logging.info(" ---> [%s] Loading feed #5: %s" % (request.user, datetime.datetime.now()-now))
data = dict(stories=stories,
feed_tags=feed_tags,
feed_authors=feed_authors,

View file

@ -176,7 +176,8 @@ class ProcessFeed:
end_date = story.get('published')
story_guids.append(story.get('guid') or story.get('link'))
existing_stories = Story.objects.filter(
story_guid__in=story_guids,
(Q(story_date__gte=start_date) & Q(story_date__lte=end_date))
| (Q(story_guid__in=story_guids)),
story_feed=self.feed
).order_by('-story_date')
ret_values = self.feed.add_update_stories(self.fpf.entries, existing_stories)