在Tornado中使用Future Object来执行文件并返回状态

时间:2018-01-12 08:36:02

标签: python tornado coroutine concurrent.futures

我是龙卷风的初学者,在了解龙卷风方面遇到一些困难,尤其是未来'。我的实际计划是返回状态'待定'当python文件在后台执行时,用户不会阻塞(异步)。我用了'Subprocess'运行python脚本。 python文件是转换文件格式。转换后,程序必须将状态更新为“已完成”状态。在MongoDB中。然后,将该状态返回给用户。以下是我的龙卷风处理程序。

class FileAsyncHandler(tornado.web.RequestHandler):
    @gen.coroutine
    def get(self):
        res = yield self._work()
        self.write(res)

        client = MongoClient("mongodb://localhost:27017")
        db=client.business
        documents = db.reviews.find({'cuisine':'Fast Food'}).sort('name')
        for document in documents:
                pprint(document)
        print(" <<<<<<<<< Fetched " + str(db.reviews.find({'cuisine':'Fast Food'}).count()) + " >>>>>>>>>>")
        print(" <<<<<<<<< File Executing >>>>>>>>>>")

    @gen.coroutine
    def _work(self):
        cmd = ['python3', '/home/Austin/Desktop/PythonCodes/magician.py']
        p = Subprocess(cmd)
        f = Future()
        p.set_exit_callback(f.set_result)
        return ("Pending")

0 个答案:

没有答案