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