レスポンスを早くしたい。(python)
レスポンスを早くしたい。(python)
google app engine/pythonを利用してまとめのまとめサイトを作成しているのですが、レスポンスにかなり時間がかかってしまいます。
rssをただ上書きでページに表示するのではなく、過去に配信された記事(このrss配列に保存した日から)は全て保存しておきたいです。
恐らく下記関数の部分が重いと思うのですが、なんとか改善することはできないでしょうか?
※全角スペースでインデントしています。
from google.appengine.ext import webapp
from google.appengine.ext import db
from google.appengine.ext.webapp import template
from google.appengine.ext.webapp.util import run_wsgi_app
import os
import cgi
import math
import datetime
import feedparser
def Rss():
rss = [
["http://hoge1.com/index.rdf",u"サイト名1","http://hoge1.com/"],
["http://hoge2.com/index.rdf",u"サイト名2","http://hoge2.com/"],
["http://hoge3.com/index.rdf",u"サイト名3","http://hoge3.com/"],
["http://hoge4.com/index.rdf",u"サイト名4","http://hoge4.com/"],
["http://hoge5.com/index.rdf",u"サイト名5","http://hoge5.com/"],
["http://hoge6.com/index.rdf",u"サイト名6","http://hoge6.com/"]]
for r in range(len(rss)):
f = feedparser.parse(rss[r][0])
results = Nich.all().filter('site_url =', rss[r][2]).order('-date').fetch(limit=1)
if results:
for i in range(0,len(f.entries)):
date = datetime.datetime.strptime(f.entries[i].updated,'%Y-%m-%dT%H:%M:%S+09:00')
for result in results:
if result.date < date:
nich = Nich()
nich.e_title = f.entries[i].title
nich.e_body = f.entries[i].summary.replace('\n',' ')
nich.e_url = f.entries[i].links[0].href
nich.site = rss[r][1]
nich.site_url = rss[r][2]
nich.hit = 0;
nich.date = date
nich.put()
else:
for i in range(0,len(f.entries)):
date = datetime.datetime.strptime(f.entries[i].updated,'%Y-%m-%dT%H:%M:%S+09:00')
nich = Nich()
nich.e_title = f.entries[i].title
nich.e_body = f.entries[i].summary.replace('\n',' ')
nich.e_url = f.entries[i].links[0].href
nich.site = rss[r][1]
nich.site_url = rss[r][2]
nich.hit = 0;
nich.date = date
nich.put()
現在、ダッシュボードのAvg CPU (API)という項目が、平均して4000(3000)という状態です。赤文字です。
意味不明な部分があれば言ってくださればすぐに補足しますので、どうか宜しくお願いします。