Python如何调用一个函数,但是不等待返回

小弟初学Python遇到这样的问题:
网站需要对用户的登录进行记录,但是增加记录时要通过网络调用API,为了避免用户等待,怎样调用记录函数之后不等待其返回,直接登录完毕呢?

阅读 10.9k
2 个回答

楼主,可以用线程threading模块做异步任务:

#!/usr/bin/env python
#-*- coding:utf-8 -*-

import threading
import time

def log(func):
    def wrapper(*args, **kwargs):
        def log_task(user):
            # time.sleep(2)
            print user, "login log"

        threading.Thread(target=log_task, args=("user 1",)).start()
        return func(*args, **kwargs)
    return wrapper



@log
def login():
    print "login..."
    return "user login done"

if __name__ == '__main__':
    print login()
    print "over"

如果不行,再看看celery吧,这个应该可以解决你的问题

建议看一下tornado,aioweb等非阻塞web框架。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题