Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 方法执行服务器不执行';t响应7秒_Python_Django_Multithreading_Python 3.x_Multiprocessing - Fatal编程技术网

Python 方法执行服务器不执行';t响应7秒

Python 方法执行服务器不执行';t响应7秒,python,django,multithreading,python-3.x,multiprocessing,Python,Django,Multithreading,Python 3.x,Multiprocessing,我有一个名为validate\u account()的函数,它返回布尔值。它转到db,并以7秒的持续时间进行一些操作。所以,当我向服务器发出另一个请求时,它在这7秒内不会响应任何请求。我怎样才能修好它?也许可以开始新的过程 @login_required @csrf_protect def check_account(request): username = request.session['current_account'] account = get_object_or_4

我有一个名为
validate\u account()
的函数,它返回布尔值。它转到db,并以7秒的持续时间进行一些操作。所以,当我向服务器发出另一个请求时,它在这7秒内不会响应任何请求。我怎样才能修好它?也许可以开始新的过程

@login_required
@csrf_protect
def check_account(request):
    username = request.session['current_account']

    account = get_object_or_404(Account, username=username)
    # takes 7 seconds
    login_status = validate_account(account.username, account.password)

    response = {
        'loginStatus': login_status
    }

    response = json.dumps(response)

    return JsonResponse(response, safe=False)
我以
python manage.py runserver--nothreading--noreload

的方式运行服务器,
--nothreading
选项禁用多线程,因此您将只有一个线程响应请求。由于每个线程都同步处理请求,因此会产生您描述的确切行为


只需删除
--nothreading
选项,多线程将允许服务器同时响应多个请求。在生产环境中,您还应该使用多个线程和/或进程来运行WSGI服务器

您是否尝试优化validate_account()函数?@SurbhitWagle遗憾的是,我无法优化它。我能用另一种方法吗?读。你的是经典的XYproblem@Sniper真的吗?XY问题?听着,好吧,如果我甚至优化了它(我做不到),那又怎样?服务器将不响应3秒而不是7秒?如果我有50个用户,其中10个将尝试调用此请求,该怎么办?其他40个无法刷新页面的用户呢?您使用的是哪台服务器,以及哪一个数据库?