Я создаю веб-сайт, на котором будут пользователи, которые могут входить в систему и делать что-то. Но каждую секунду, когда они входят в систему, я хочу уменьшить значение, связанное с этим пользователем (называемое time_left). Прямо сейчас я думаю о вызове метода при входе в систему, который затем будет работать непрерывно, пока пользователь не выйдет из системы. Поэтому я вызываю метод в представлении входа в систему под названием time_update:
def login(request):
"""
View function.
In case it is a POST request, the user login form is created and is checked
if valid. If it is valid, it is processed checked if user can log in. Otherwise a
response with the form is sent.
"""
if request.user.is_authenticated:
return redirect('home-page')
if request.method == "POST":
form = UserLoginForm(request, data=request.POST)
if form.is_valid():
email = form.cleaned_data.get('email')
password = form.cleaned_data.get('password')
user = authenticate(email=email, password=password)
if user is not None:
if user.is_active:
auth_login(request, user)
time_update(user.email)
else:
print("user is not authenticated")
return redirect('home-page') # user is redirected to dashboard
else:
form = UserLoginForm()
return render(request, 'users/login.html', {'form': form})
Но я как бы застрял в том, что делать с этим методом time_update, который должен уменьшать значение time_left каждую секунду. Особенно для нескольких пользователей, которые вошли в систему одновременно. У кого-нибудь есть идеи?