# timeindex.thrift
service TimeIndex {
map<binary,binary> get_news_message_by_id(
1: i64 news_id
),
map<i64, map<binary,binary>> get_news_message(
1: string recallDict,
2: i64 user_id,
3: i64 member_id,
),
map<binary,binary> get_news_hot_by_id(
1: i64 news_id
),
set<i64> update_timeindex_news()
}
# timeindex_server.py
import json
import thriftpy2
from thriftpy2.rpc import make_server
from recommend_api.common import news
from recommend_api.config import recommend_api_home
from recommend_api.common.preload import news_all_message_init
timeindex_thrift = thriftpy2.load("timeindex.thrift", module_name="timeindex_thrift")
class Dispatcher(object):
def get_news_message_by_id(self, news_id):
news_message = news.get_news_message_by_id(news_id)
return news_message
def get_news_message(self, recallDict, user_id=0, member_id=0):
recallDict = json.loads(recallDict)
news_message = news.get_news_message(recallDict, user_id, member_id)
return news_message
def get_news_hot_by_id(self, news_id):
news_hot = news.get_news_hot_by_id(news_id)
return news_hot
def update_timeindex_news(self):
return news.time_index_news_ids
if __name__ == "__main__":
news_all_message_init(news_type=1)
server = make_server(timeindex_thrift.TimeIndex, Dispatcher(), '0.0.0.0', 18002)
server.serve()
# timeindex_client.py
import json
import thriftpy2
from thriftpy2.rpc import make_client
timeindex_thrift = thriftpy2.load("timeindex.thrift", module_name="timeindex_thrift")
client = make_client(timeindex_thrift.TimeIndex, '127.0.0.1', 18002)
dl = client.update_timeindex_news()
print(len(dl))
print(client.get_news_message_by_id(10078000))
print(client.get_news_hot_by_id(10078000))
print(client.get_news_message(json.dumps({"shortTagList":[{"score":0,"newsId":9569000,"recallStrategyName":"ShortTagARecallStrategy","sortStrategyName":"ShortTagASortStrategy","newsType":1}]})))