Python如何调用一个函数,但是不等待返回
阿神
阿神 2017-04-17 13:47:38
[Python讨论组]

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

阿神
阿神

闭关修行中......

全部回复(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框架。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号