# encoding:utf-8
import threading
import pymongo
import redis
from bson import ObjectId
limit_page = 1000
lock = threading.Lock()
class Up:
def __init__(self):
self.LastId = ''
self.startClient = pymongo.MongoClient('192.168.1.50').TianYan.ShangBiao_old
self.redisclient = redis.StrictRedis(host='192.168.1.50', db=10)
def get_mongo_info(self):
lock.acquire()
if self.LastId:
result = self.startClient.find({"_id": {"$gt": ObjectId(self.LastId)}}).limit(limit_page).sort('_id', 1)
else:
result = self.startClient.find().limit(limit_page).sort('_id', 1)
message = list(result)
try:
self.LastId = message[-1]['_id']
except:
print("数据导出完毕")
return message
else:
return message
finally:
lock.release()
def find_info(self):
while True:
message = self.get_mongo_info()
if message ==[]:
break
for info in message:
company_id = info['company_id']
print(company_id)
self.redisclient.sadd('trademark', company_id)
def run(self):
Threads = []
for _ in range(50):
t2 = threading.Thread(target=self.find_info)
t2.start()
Threads.append(t2)
for t in Threads:
t.join()
if __name__ == '__main__':
up = Up()
up.run()