mirror of https://github.com/openspug/spug
U improve logging
parent
014ad8ce08
commit
700de88f49
|
@ -3,6 +3,9 @@
|
|||
# Released under the AGPL-3.0 License.
|
||||
from django.core.management.base import BaseCommand
|
||||
from apps.monitor.scheduler import Scheduler
|
||||
import logging
|
||||
|
||||
logging.basicConfig(level=logging.WARNING, format='%(asctime)s %(message)s')
|
||||
|
||||
|
||||
class Command(BaseCommand):
|
||||
|
|
|
@ -20,8 +20,6 @@ import logging
|
|||
import json
|
||||
import time
|
||||
|
||||
logger = logging.getLogger("django.apps.monitor")
|
||||
|
||||
|
||||
class Scheduler:
|
||||
timezone = settings.TIME_ZONE
|
||||
|
@ -61,7 +59,7 @@ class Scheduler:
|
|||
if obj.latest_status == 0:
|
||||
if is_notified:
|
||||
self._record_alarm(obj, '2')
|
||||
logger.info(f'{human_datetime()} recover job_id: {obj.id}, job_name: {obj.name}')
|
||||
logging.warning(f'{human_datetime()} recover job_id: {obj.id}, job_name: {obj.name}')
|
||||
self._do_notify('2', obj, out)
|
||||
else:
|
||||
if obj.fault_times >= obj.threshold:
|
||||
|
@ -69,20 +67,20 @@ class Scheduler:
|
|||
obj.latest_notify_time = int(time.time())
|
||||
obj.save()
|
||||
self._record_alarm(obj, '1')
|
||||
logger.info(f'{human_datetime()} notify job_id: {obj.id}, job_name: {obj.name}')
|
||||
logging.warning(f'{human_datetime()} notify job_id: {obj.id}, job_name: {obj.name}')
|
||||
self._do_notify('1', obj, out)
|
||||
|
||||
def _handle_event(self, event):
|
||||
close_old_connections()
|
||||
obj = SimpleLazyObject(lambda: Detection.objects.filter(pk=event.job_id).first())
|
||||
if event.code == EVENT_SCHEDULER_SHUTDOWN:
|
||||
logger.info(f'EVENT_SCHEDULER_SHUTDOWN: {event}')
|
||||
logging.warning(f'EVENT_SCHEDULER_SHUTDOWN: {event}')
|
||||
Notify.make_notify('monitor', '1', '调度器已关闭', '调度器意外关闭,你可以在github上提交issue', False)
|
||||
elif event.code == EVENT_JOB_MAX_INSTANCES:
|
||||
logger.info(f'EVENT_JOB_MAX_INSTANCES: {event}')
|
||||
logging.warning(f'EVENT_JOB_MAX_INSTANCES: {event}')
|
||||
Notify.make_notify('monitor', '1', f'{obj.name} - 达到调度实例上限', '一般为上个周期的执行任务还未结束,请增加调度间隔或减少任务执行耗时')
|
||||
elif event.code == EVENT_JOB_ERROR:
|
||||
logger.info(f'EVENT_JOB_ERROR: job_id {event.job_id} exception: {event.exception}')
|
||||
logging.warning(f'EVENT_JOB_ERROR: job_id {event.job_id} exception: {event.exception}')
|
||||
Notify.make_notify('monitor', '1', f'{obj.name} - 执行异常', f'{event.exception}')
|
||||
elif event.code == EVENT_JOB_EXECUTED:
|
||||
is_ok, out = event.retval
|
||||
|
@ -114,7 +112,7 @@ class Scheduler:
|
|||
rds_cli = get_redis_connection()
|
||||
self._init()
|
||||
rds_cli.delete(settings.MONITOR_KEY)
|
||||
logger.info('Running monitor')
|
||||
logging.warning('Running monitor')
|
||||
while True:
|
||||
_, data = rds_cli.brpop(settings.MONITOR_KEY)
|
||||
task = AttrDict(json.loads(data))
|
||||
|
|
|
@ -3,6 +3,9 @@
|
|||
# Released under the AGPL-3.0 License.
|
||||
from django.core.management.base import BaseCommand
|
||||
from apps.schedule.scheduler import Scheduler
|
||||
import logging
|
||||
|
||||
logging.basicConfig(level=logging.WARNING, format='%(asctime)s %(message)s')
|
||||
|
||||
|
||||
class Command(BaseCommand):
|
||||
|
|
|
@ -23,8 +23,6 @@ from libs import AttrDict, human_datetime
|
|||
import logging
|
||||
import json
|
||||
|
||||
logger = logging.getLogger("django.apps.scheduler")
|
||||
|
||||
|
||||
class Scheduler:
|
||||
timezone = settings.TIME_ZONE
|
||||
|
@ -65,13 +63,13 @@ class Scheduler:
|
|||
close_old_connections()
|
||||
obj = SimpleLazyObject(lambda: Task.objects.filter(pk=event.job_id).first())
|
||||
if event.code == EVENT_SCHEDULER_SHUTDOWN:
|
||||
logger.info(f'EVENT_SCHEDULER_SHUTDOWN: {event}')
|
||||
logging.warning(f'EVENT_SCHEDULER_SHUTDOWN: {event}')
|
||||
Notify.make_notify('schedule', '1', '调度器已关闭', '调度器意外关闭,你可以在github上提交issue')
|
||||
elif event.code == EVENT_JOB_MAX_INSTANCES:
|
||||
logger.info(f'EVENT_JOB_MAX_INSTANCES: {event}')
|
||||
logging.warning(f'EVENT_JOB_MAX_INSTANCES: {event}')
|
||||
send_fail_notify(obj, '达到调度实例上限,一般为上个周期的执行任务还未结束,请增加调度间隔或减少任务执行耗时')
|
||||
elif event.code == EVENT_JOB_ERROR:
|
||||
logger.info(f'EVENT_JOB_ERROR: job_id {event.job_id} exception: {event.exception}')
|
||||
logging.warning(f'EVENT_JOB_ERROR: job_id {event.job_id} exception: {event.exception}')
|
||||
send_fail_notify(obj, f'执行异常:{event.exception}')
|
||||
elif event.code == EVENT_JOB_EXECUTED:
|
||||
if event.retval:
|
||||
|
@ -110,7 +108,7 @@ class Scheduler:
|
|||
rds_cli = get_redis_connection()
|
||||
self._init()
|
||||
rds_cli.delete(settings.SCHEDULE_KEY)
|
||||
logger.info('Running scheduler')
|
||||
logging.warning('Running scheduler')
|
||||
while True:
|
||||
_, data = rds_cli.brpop(settings.SCHEDULE_KEY)
|
||||
task = AttrDict(json.loads(data))
|
||||
|
|
Loading…
Reference in New Issue