теперь логируется
All checks were successful
Deploy timelaps / deploy (push) Successful in 5s

This commit is contained in:
ack
2026-04-19 19:49:36 +03:00
parent 4a10958445
commit a8be932210
3 changed files with 57 additions and 4 deletions

View File

@@ -1,9 +1,12 @@
import logging
import time
from django.core.management.base import BaseCommand
from ...services.timelapse_worker import run_one_job
logger = logging.getLogger('camlaps')
class Command(BaseCommand):
help = 'Запуск обработчика очереди таймлапсов.'
@@ -18,14 +21,24 @@ class Command(BaseCommand):
)
def handle(self, *args, **options):
logger.info('worker_cmd:handle:start')
once = options['once']
sleep_seconds = options['sleep']
if once:
run_one_job()
try:
run_one_job()
logger.info('worker_cmd:handle:done mode=once')
except Exception:
logger.exception('worker_cmd:handle:error mode=once')
raise
return
while True:
processed = run_one_job()
if not processed:
time.sleep(sleep_seconds)
try:
processed = run_one_job()
if not processed:
time.sleep(sleep_seconds)
except Exception:
logger.exception('worker_cmd:handle:error mode=loop')
raise

View File

@@ -1,3 +1,4 @@
import logging
import subprocess
import sys
@@ -16,6 +17,8 @@ from .services.cameras import (
list_active_cameras,
)
logger = logging.getLogger('camlaps')
def index(request):
cameras = list_active_cameras()
@@ -66,8 +69,11 @@ def job_list(request):
@require_POST
def start_queue(request):
logger.info('queue:start_request:start')
has_planned = TimelapseJob.objects.filter(status=TimelapseJob.Status.PLANNED).exists()
if not has_planned:
logger.info('queue:start_request:done no_planned_jobs=true')
return redirect(f"{reverse('camlaps:job_list')}?started=none")
cmd = [sys.executable, 'manage.py', 'run_timelapse_worker', '--once']
@@ -83,8 +89,10 @@ def start_queue(request):
try:
subprocess.Popen(cmd, **kwargs)
logger.info('queue:start_request:done worker_started=true')
return redirect(f"{reverse('camlaps:job_list')}?started=worker")
except Exception:
logger.exception('queue:start_request:error')
return redirect(f"{reverse('camlaps:job_list')}?started=error")