This commit is contained in:
@@ -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
|
||||
Reference in New Issue
Block a user