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个无法刷新页面的用户呢?您使用的是哪台服务器,以及哪一个数据库?