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()