kopia lustrzana https://github.com/OpenDroneMap/WebODM
Cleanup partial tasks
rodzic
6b4230f233
commit
9fb0c6db67
|
@ -40,9 +40,9 @@ class TaskAdmin(admin.ModelAdmin):
|
||||||
def has_add_permission(self, request):
|
def has_add_permission(self, request):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
list_display = ('id', 'project', 'processing_node', 'created_at', 'status', 'last_error')
|
list_display = ('id', 'name', 'project', 'processing_node', 'created_at', 'status', 'last_error')
|
||||||
list_filter = ('status', 'project',)
|
list_filter = ('status', 'project',)
|
||||||
search_fields = ('id', 'project__name')
|
search_fields = ('id', 'name', 'project__name')
|
||||||
|
|
||||||
|
|
||||||
admin.site.register(Task, TaskAdmin)
|
admin.site.register(Task, TaskAdmin)
|
||||||
|
|
|
@ -411,6 +411,10 @@ QUOTA_EXCEEDED_GRACE_PERIOD = 8
|
||||||
# Maximum number of processing nodes to show in "Processing Nodes" menus/dropdowns
|
# Maximum number of processing nodes to show in "Processing Nodes" menus/dropdowns
|
||||||
UI_MAX_PROCESSING_NODES = None
|
UI_MAX_PROCESSING_NODES = None
|
||||||
|
|
||||||
|
# Number of hours before partial tasks
|
||||||
|
# are removed (or None to disable)
|
||||||
|
CLEANUP_PARTIAL_TASKS = None
|
||||||
|
|
||||||
if TESTING or FLUSHING:
|
if TESTING or FLUSHING:
|
||||||
CELERY_TASK_ALWAYS_EAGER = True
|
CELERY_TASK_ALWAYS_EAGER = True
|
||||||
EXTERNAL_AUTH_ENDPOINT = 'http://0.0.0.0:5555/auth'
|
EXTERNAL_AUTH_ENDPOINT = 'http://0.0.0.0:5555/auth'
|
||||||
|
|
|
@ -28,6 +28,14 @@ app.conf.beat_schedule = {
|
||||||
'retry': False
|
'retry': False
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
'cleanup-tasks': {
|
||||||
|
'task': 'worker.tasks.cleanup_tasks',
|
||||||
|
'schedule': 3600,
|
||||||
|
'options': {
|
||||||
|
'expires': 1799,
|
||||||
|
'retry': False
|
||||||
|
}
|
||||||
|
},
|
||||||
'cleanup-tmp-directory': {
|
'cleanup-tmp-directory': {
|
||||||
'task': 'worker.tasks.cleanup_tmp_directory',
|
'task': 'worker.tasks.cleanup_tmp_directory',
|
||||||
'schedule': 3600,
|
'schedule': 3600,
|
||||||
|
|
|
@ -23,6 +23,8 @@ import worker
|
||||||
from .celery import app
|
from .celery import app
|
||||||
from app.raster_utils import export_raster as export_raster_sync, extension_for_export_format
|
from app.raster_utils import export_raster as export_raster_sync, extension_for_export_format
|
||||||
from app.pointcloud_utils import export_pointcloud as export_pointcloud_sync
|
from app.pointcloud_utils import export_pointcloud as export_pointcloud_sync
|
||||||
|
from django.utils import timezone
|
||||||
|
from datetime import timedelta
|
||||||
import redis
|
import redis
|
||||||
|
|
||||||
logger = get_task_logger("app.logger")
|
logger = get_task_logger("app.logger")
|
||||||
|
@ -67,6 +69,16 @@ def cleanup_projects():
|
||||||
if total > 0 and 'app.Project' in count_dict:
|
if total > 0 and 'app.Project' in count_dict:
|
||||||
logger.info("Deleted {} projects".format(count_dict['app.Project']))
|
logger.info("Deleted {} projects".format(count_dict['app.Project']))
|
||||||
|
|
||||||
|
@app.task(ignore_result=True)
|
||||||
|
def cleanup_tasks():
|
||||||
|
# Delete tasks that are older than
|
||||||
|
if settings.CLEANUP_PARTIAL_TASKS is None:
|
||||||
|
return
|
||||||
|
|
||||||
|
tasks_to_delete = Task.objects.filter(partial=True, created_at__lte=timezone.now() - timedelta(hours=settings.CLEANUP_PARTIAL_TASKS))
|
||||||
|
for t in tasks_to_delete:
|
||||||
|
logger.info("Cleaning up partial task {}".format(t))
|
||||||
|
t.delete()
|
||||||
|
|
||||||
@app.task(ignore_result=True)
|
@app.task(ignore_result=True)
|
||||||
def cleanup_tmp_directory():
|
def cleanup_tmp_directory():
|
||||||
|
|
Ładowanie…
Reference in New Issue