task_manager.py 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. # coding=utf-8
  2. '''
  3. Created on 2016年3月7日
  4. @author: ChenHao
  5. '''
  6. import random
  7. from mouser_spider import Status
  8. from pymongo.mongo_client import MongoClient
  9. class TaskManager(object):
  10. def __init__(self):
  11. self.result = None
  12. # 获得一个任务
  13. def _get_one_task(self, db):
  14. rand = random.random()
  15. result_gt = db.kindlist_test.find_one({"status" : Status.TODO, "random" : {"$gt" : rand}})
  16. if result_gt is not None:
  17. # result_gt["status"] = Status.BUSY
  18. self.result = result_gt
  19. else:
  20. result_lt = db.kindlist_test.find_one({"status" : Status.TODO, "random" : {"$lt" : rand}})
  21. if result_lt is not None:
  22. # result_lt["status"] = Status.BUSY
  23. self.result = result_lt
  24. return self.result
  25. if __name__ == '__main__':
  26. task_manager = TaskManager()
  27. cli = MongoClient("mongodb://localhost:27017/")
  28. # db = cli.spider.kindlist_todo
  29. db = cli.spider
  30. s = set()
  31. for i in range(100):
  32. task_manager.result = None
  33. result = task_manager._get_one_task(db)
  34. print(result["url"])
  35. s.add(result["url"])
  36. print(len(s))