Fix currently_online
Make currently_online aware of SCRIPT_HEARTBEAT_FREQUENCY
This commit is contained in:
		
							parent
							
								
									351efff147
								
							
						
					
					
						commit
						71431fcaa6
					
				@ -1,12 +1,10 @@
 | 
			
		||||
import json
 | 
			
		||||
import uuid
 | 
			
		||||
 | 
			
		||||
from django.conf import settings
 | 
			
		||||
from django.db import models
 | 
			
		||||
from django.shortcuts import reverse
 | 
			
		||||
from django.utils import timezone
 | 
			
		||||
 | 
			
		||||
from core.models import Service
 | 
			
		||||
from core.models import Service, ACTIVE_USER_TIMEDELTA
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def _default_uuid():
 | 
			
		||||
@ -61,9 +59,7 @@ class Session(models.Model):
 | 
			
		||||
 | 
			
		||||
    @property
 | 
			
		||||
    def is_currently_active(self):
 | 
			
		||||
        return timezone.now() - self.last_seen < timezone.timedelta(
 | 
			
		||||
            milliseconds=settings.SCRIPT_HEARTBEAT_FREQUENCY * 2
 | 
			
		||||
        )
 | 
			
		||||
        return timezone.now() - self.last_seen < ACTIVE_USER_TIMEDELTA
 | 
			
		||||
 | 
			
		||||
    @property
 | 
			
		||||
    def duration(self):
 | 
			
		||||
 | 
			
		||||
@ -4,6 +4,7 @@ import re
 | 
			
		||||
import uuid
 | 
			
		||||
 | 
			
		||||
from django.apps import apps
 | 
			
		||||
from django.conf import settings
 | 
			
		||||
from django.contrib.auth.models import AbstractUser
 | 
			
		||||
from django.core.exceptions import ValidationError
 | 
			
		||||
from django.db import models
 | 
			
		||||
@ -13,6 +14,11 @@ from django.shortcuts import reverse
 | 
			
		||||
from django.utils import timezone
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
ACTIVE_USER_TIMEDELTA = timezone.timedelta(
 | 
			
		||||
    milliseconds=settings.SCRIPT_HEARTBEAT_FREQUENCY * 2
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def _default_uuid():
 | 
			
		||||
    return str(uuid.uuid4())
 | 
			
		||||
 | 
			
		||||
@ -120,7 +126,7 @@ class Service(models.Model):
 | 
			
		||||
        Hit = apps.get_model("analytics", "Hit")
 | 
			
		||||
 | 
			
		||||
        currently_online = Session.objects.filter(
 | 
			
		||||
            service=self, last_seen__gt=timezone.now() - timezone.timedelta(seconds=10)
 | 
			
		||||
            service=self, last_seen__gt=timezone.now() - ACTIVE_USER_TIMEDELTA
 | 
			
		||||
        ).count()
 | 
			
		||||
 | 
			
		||||
        sessions = Session.objects.filter(
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user