标签:
好久没有更新博客了,前段时间忙于毕设,之后去公司实习。近一段时间空了,整理一下之前所遇到的问题,以及解决方法。
通常当计算机运行很久的代码,需要将其放在后台进行处理,也就是需要实现异步。python中一个解决方案就是利用celery这个包。
具体的实现思路是,计算前在数据库例如mongo里面插入一个{"state":"0"};celery将计算程序放入一个存储消息的数据库,通常可以用redis;同时,启动celery的worker,它将不断check redis里面的消息,如果有那么进行计算;而当计算完update那条记录{"state":"1","result":"something"}。
异步的好处在于能将一堆calculation,同时放去后台,而前端只要不断check那条记录里的state这个feature。当然state也可以很多的状态值,可以定义各个error,这样也可以找到错误。
标签:
原文地址:http://www.cnblogs.com/yinruyi/p/4799625.html