mirror of
				https://github.com/inventree/InvenTree.git
				synced 2025-10-30 20:55:42 +00:00 
			
		
		
		
	Merge pull request #1973 from SchrodingersGat/delete-expired-sessions
Run periodic (daily) task to clear out expired sessions
This commit is contained in:
		| @@ -32,27 +32,37 @@ class InvenTreeConfig(AppConfig): | ||||
|  | ||||
|         logger.info("Starting background tasks...") | ||||
|  | ||||
|         # Remove successful task results from the database | ||||
|         InvenTree.tasks.schedule_task( | ||||
|             'InvenTree.tasks.delete_successful_tasks', | ||||
|             schedule_type=Schedule.DAILY, | ||||
|         ) | ||||
|  | ||||
|         # Check for InvenTree updates | ||||
|         InvenTree.tasks.schedule_task( | ||||
|             'InvenTree.tasks.check_for_updates', | ||||
|             schedule_type=Schedule.DAILY | ||||
|         ) | ||||
|  | ||||
|         # Heartbeat to let the server know the background worker is running | ||||
|         InvenTree.tasks.schedule_task( | ||||
|             'InvenTree.tasks.heartbeat', | ||||
|             schedule_type=Schedule.MINUTES, | ||||
|             minutes=15 | ||||
|         ) | ||||
|  | ||||
|         # Keep exchange rates up to date | ||||
|         InvenTree.tasks.schedule_task( | ||||
|             'InvenTree.tasks.update_exchange_rates', | ||||
|             schedule_type=Schedule.DAILY, | ||||
|         ) | ||||
|  | ||||
|         # Remove expired sessions | ||||
|         InvenTree.tasks.schedule_task( | ||||
|             'InvenTree.tasks.delete_expired_sessions', | ||||
|             schedule_type=Schedule.DAILY, | ||||
|         ) | ||||
|  | ||||
|     def update_exchange_rates(self): | ||||
|         """ | ||||
|         Update exchange rates each time the server is started, *if*: | ||||
|   | ||||
| @@ -204,6 +204,25 @@ def check_for_updates(): | ||||
|     ) | ||||
|  | ||||
|  | ||||
| def delete_expired_sessions(): | ||||
|     """ | ||||
|     Remove any expired user sessions from the database | ||||
|     """ | ||||
|  | ||||
|     try: | ||||
|         from django.contrib.sessions.models import Session | ||||
|  | ||||
|         # Delete any sessions that expired more than a day ago | ||||
|         expired = Session.objects.filter(expire_date__lt=timezone.now() - timedelta(days=1)) | ||||
|  | ||||
|         if True or expired.count() > 0: | ||||
|             logger.info(f"Deleting {expired.count()} expired sessions.") | ||||
|             expired.delete() | ||||
|  | ||||
|     except AppRegistryNotReady: | ||||
|         logger.info("Could not perform 'delete_expired_sessions' - App registry not ready") | ||||
|  | ||||
|  | ||||
| def update_exchange_rates(): | ||||
|     """ | ||||
|     Update currency exchange rates | ||||
|   | ||||
		Reference in New Issue
	
	Block a user