1

私はこれを正しく行っていますか?このメソッドでインデックスからエンティティを削除しようとしていますが、初めての試みなので、機能しているかどうかわかりません:

def get(self):
    timeline = datetime.now () - timedelta (days = 59)
    edge = datetime.now () - timedelta (days = 60)
    ads = Ad.all().filter("published =", True).filter("modified <", timeline).filter("url IN", ['www.koolbusiness.com']).filter("modified >", edge)
    for ad in ads:
        if ad.title:
            subject= ad.title
        else:
            subject = 'Reminder'
        message = mail.EmailMessage(sender='admin@koolbusiness.com', subject=subject)
        reminder = 'You can renew your advertisement'
        message.body = ('%s \nhttp://www.koolbusiness.com/vi/%d %s') % (reminder, ad.key().id(), '\nIf you like, you can also add us on Facebook \nhttp://apps.facebook.com/koolbusiness')
        message.to=ad.email
        message.bcc='fridge@koolbusiness.com'
        message.send()
        index = search.Index(name='ad',
                 consistency=Index.PER_DOCUMENT_CONSISTENT)
        index.remove(str(ad.key())

上記のコードは、タイムアウトになった広告のリマインダーを送信し、インデックスから削除することになっています。広告が更新された場合、再度インデックスに追加できます。それはうまくいきますか?

4

1 に答える 1

2

コードは機能するはずですが、広告をインデックスから削除するのではなく、期限切れとしてマークすることをお勧めします。これにより、更新された広告のインデックスを再作成する必要がなくなり、広告の監査が向上します。

于 2012-09-11T05:38:54.013 に答える