예제 #1
0
파일: main.py 프로젝트: wuchangqi/nowater
 def worker():
     db = BaseDB()
     while q.qsize():
         novel = q.get()
         try:
             if ready_work(novel, db):
                 notify_page(novel[0], "start")
                 do_work(novel, db)
         except Exception, e:
             log.error("%s: %s" % (novel[0], traceback.format_exc()))
             db.modify_status(novel[0], 4)
         db.commit()
         q.task_done()
예제 #2
0
 def render_GET(self, request):
     # 传入一个id,直接开始该id的抓取工作
     id = request.args.get("id", [""])[0]
     if id.isdigit():
         db = BaseDB()
         info = db.get_novel_by_id(id)
         if info:
             # 准备工作
             if ready_work(info, db):
                 mb.new_msg(id, 'start')
                 deferToThread(do_work, info,
                               db).addErrback(self.get_error, id, db)
     return "ok"
예제 #3
0
    def setUp(self):
        """
        var setups
        """

        self.master_config = '../../docs/config/my_master.json'
        self.slave_config = '../../docs/config/my_slave.json'
        self.base = None
        self.conn = None
        self.ins = None

        self.base = BaseDB()
        self.base.load_config(self.slave_config)
        self.conn, db, t = self.base.connect_server()
        self.ins = Slave(self.conn)
예제 #4
0
파일: main.py 프로젝트: wuchangqi/nowater
    def worker():
        db = BaseDB()
        while q.qsize():
            novel = q.get()
            try:
                if ready_work(novel, db):
                    notify_page(novel[0], "start")
                    do_work(novel, db)
            except Exception, e:
                log.error("%s: %s" % (novel[0], traceback.format_exc()))
                db.modify_status(novel[0], 4)
            db.commit()
            q.task_done()

    # 插入任务
    db = BaseDB()
    novel_list = db.get_novel_list()
    log.info("novel count %s", len(novel_list))
    for novel in novel_list:
        #        db.modify_status(novel[0], 1)
        q.put(novel)
#    db.commit()
    db.close()
    del db

    for i in range(min(q.qsize(), THREADS_COUNT)):
        t = threading.Thread(target=worker)
        t.setDaemon(True)
        t.start()

    q.join()
예제 #5
0
 def test_connection(self):
     ins = BaseDB()
     ins.load_config(self.master_config)
     conn, db, t = ins.connect_server()
     self.assertTrue(t)
예제 #6
0
 def test_slave(self):
     ins = BaseDB()
     ins.load_config(self.slave_config)
     conn, db, t = ins.connect_server()
     slave = Slave(conn)
     self.assertGreater(len(slave.list_symbols()), 0)
예제 #7
0
 def test_master(self):
     ins = BaseDB()
     ins.load_config(self.config)
     conn, db, t = ins.connect_server()
     mast = Master(conn)
     self.assertGreater(len(mast.list_libraries()), 0)