def main():
    usable_ids = warm_conn.keys('b:s:a*')
    usable_ids = map(lambda _id: int(_id.split(':')[-1]), usable_ids)
    articles = Article.objects(seq_id__in=usable_ids).only('seq_id', 'id', 'category', 'hot', 'quality', 'published_at', 'feature')
    update_time = datetime.datetime.utcnow()
    set_global_cal_time(update_time)
    seq_id_article_mapping = dict(((a.seq_id, (a, calculate_scores(0, 0, a.published_at, a.quality, a.hot, update_time, update_time))) for a in articles))
    User.recompute_common_candidateset(usable_ids, seq_id_article_mapping)
    users = User.objects.only('id', 'seq_id', 'feature', 'recent_feature', 'feature_updated_time', 'candidate_updated_time').all()
    usable_ids_set = set(usable_ids)
    for user in users:
        ids, _ = user.get_seen_article_ids_and_last_datetime()
        _usable_ids = usable_ids_set - set(ids)
        print user, user.seq_id, len(_usable_ids)
        short_feature, long_feature, _ = user.update_warm_feature()
        User.recompute_candidateset(user, short_feature, long_feature, seq_id_article_mapping, subset=_usable_ids)
Beispiel #2
0
 def get_all_warm_article_seq_ids(cls):
     keys = warm_conn.keys(gen_article_base_prop_key('*'))
     warm_seq_ids = set((int(gen_seq_id_from_key(_id)) for _id in keys))
     return warm_seq_ids