我有一个名为validate_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
答案 0 :(得分:0)
--nothreading
选项禁用多线程,因此您只有一个线程响应请求。由于每个线程都会同步处理请求,因此会导致您描述的确切行为。
只需删除--nothreading
选项,多线程将允许服务器同时响应多个请求。在生产中,您还应该使用多个线程和/或进程来运行WSGI服务器