mirror of
				https://github.com/paperless-ngx/paperless-ngx.git
				synced 2025-11-03 03:16:10 -06:00 
			
		
		
		
	Ensures all old connections are closed in certain longer running locations (#4265)
This commit is contained in:
		@@ -9,6 +9,7 @@ from time import monotonic
 | 
			
		||||
from time import sleep
 | 
			
		||||
from typing import Final
 | 
			
		||||
 | 
			
		||||
from django import db
 | 
			
		||||
from django.conf import settings
 | 
			
		||||
from django.core.management.base import BaseCommand
 | 
			
		||||
from django.core.management.base import CommandError
 | 
			
		||||
@@ -38,6 +39,7 @@ def _tags_from_path(filepath) -> set[Tag]:
 | 
			
		||||
 | 
			
		||||
    Returns set of Tag models
 | 
			
		||||
    """
 | 
			
		||||
    db.close_old_connections()
 | 
			
		||||
    tag_ids = set()
 | 
			
		||||
    path_parts = Path(filepath).relative_to(settings.CONSUMPTION_DIR).parent.parts
 | 
			
		||||
    for part in path_parts:
 | 
			
		||||
 
 | 
			
		||||
@@ -14,6 +14,7 @@ from django.contrib.admin.models import LogEntry
 | 
			
		||||
from django.contrib.auth.models import User
 | 
			
		||||
from django.contrib.contenttypes.models import ContentType
 | 
			
		||||
from django.db import DatabaseError
 | 
			
		||||
from django.db import close_old_connections
 | 
			
		||||
from django.db import models
 | 
			
		||||
from django.db.models import Q
 | 
			
		||||
from django.dispatch import receiver
 | 
			
		||||
@@ -529,6 +530,8 @@ def before_task_publish_handler(sender=None, headers=None, body=None, **kwargs):
 | 
			
		||||
        return
 | 
			
		||||
 | 
			
		||||
    try:
 | 
			
		||||
        close_old_connections()
 | 
			
		||||
 | 
			
		||||
        task_args = body[0]
 | 
			
		||||
        input_doc, _ = task_args
 | 
			
		||||
 | 
			
		||||
@@ -560,6 +563,7 @@ def task_prerun_handler(sender=None, task_id=None, task=None, **kwargs):
 | 
			
		||||
    https://docs.celeryq.dev/en/stable/userguide/signals.html#task-prerun
 | 
			
		||||
    """
 | 
			
		||||
    try:
 | 
			
		||||
        close_old_connections()
 | 
			
		||||
        task_instance = PaperlessTask.objects.filter(task_id=task_id).first()
 | 
			
		||||
 | 
			
		||||
        if task_instance is not None:
 | 
			
		||||
@@ -587,6 +591,7 @@ def task_postrun_handler(
 | 
			
		||||
    https://docs.celeryq.dev/en/stable/userguide/signals.html#task-postrun
 | 
			
		||||
    """
 | 
			
		||||
    try:
 | 
			
		||||
        close_old_connections()
 | 
			
		||||
        task_instance = PaperlessTask.objects.filter(task_id=task_id).first()
 | 
			
		||||
 | 
			
		||||
        if task_instance is not None:
 | 
			
		||||
@@ -615,6 +620,7 @@ def task_failure_handler(
 | 
			
		||||
    https://docs.celeryq.dev/en/stable/userguide/signals.html#task-failure
 | 
			
		||||
    """
 | 
			
		||||
    try:
 | 
			
		||||
        close_old_connections()
 | 
			
		||||
        task_instance = PaperlessTask.objects.filter(task_id=task_id).first()
 | 
			
		||||
 | 
			
		||||
        if task_instance is not None and task_instance.result is None:
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user