make scheduler log messages nicer
This commit is contained in:
@@ -73,7 +73,6 @@ class EventMap(ProcessEvent):
|
|||||||
for flag, tasks in event_map.items():
|
for flag, tasks in event_map.items():
|
||||||
self.set_task(flag, tasks)
|
self.set_task(flag, tasks)
|
||||||
|
|
||||||
|
|
||||||
def set_task(self, flag, tasks):
|
def set_task(self, flag, tasks):
|
||||||
assert flag in EventMap.flags, \
|
assert flag in EventMap.flags, \
|
||||||
f"event_map: invalid flag: {flag}"
|
f"event_map: invalid flag: {flag}"
|
||||||
|
|||||||
@@ -95,8 +95,16 @@ class TaskScheduler(Task):
|
|||||||
|
|
||||||
self._tasks = {}
|
self._tasks = {}
|
||||||
|
|
||||||
async def _schedule_task(self, event, task_id, task_state):
|
async def _schedule_task(self, event, task_id, task_state, restart):
|
||||||
if self._delay > 0:
|
if self._delay > 0:
|
||||||
|
if restart:
|
||||||
|
action = "re-schedule"
|
||||||
|
else:
|
||||||
|
action = "schedule"
|
||||||
|
|
||||||
|
self._log.info(
|
||||||
|
f"{action} task ({_event_to_str(event)}, "
|
||||||
|
f"task_id={task_state.task_id}, delay={self._delay})")
|
||||||
await asyncio.sleep(self._delay)
|
await asyncio.sleep(self._delay)
|
||||||
|
|
||||||
task_state.waiting = False
|
task_state.waiting = False
|
||||||
@@ -113,22 +121,23 @@ class TaskScheduler(Task):
|
|||||||
(event.dir and self._dirs)):
|
(event.dir and self._dirs)):
|
||||||
return
|
return
|
||||||
|
|
||||||
self.cancel(event)
|
if event.pathname in self._tasks:
|
||||||
|
self.cancel(event, silent=True)
|
||||||
|
restart = True
|
||||||
|
else:
|
||||||
|
restart = False
|
||||||
|
|
||||||
task_state = _TaskState()
|
task_state = _TaskState()
|
||||||
task_state.task_id, task_state.task = super().start(
|
task_state.task_id, task_state.task = super().start(
|
||||||
event, task_state, *args, **kwargs)
|
event, task_state, restart, *args, **kwargs)
|
||||||
self._tasks[event.pathname] = task_state
|
self._tasks[event.pathname] = task_state
|
||||||
if self._delay > 0:
|
|
||||||
self._log.info(
|
|
||||||
f"schedule task ({_event_to_str(event)}, "
|
|
||||||
f"task_id={task_state.task_id}, delay={self._delay})")
|
|
||||||
|
|
||||||
def cancel(self, event):
|
def cancel(self, event, silent=False):
|
||||||
if event.pathname in self._tasks:
|
if event.pathname in self._tasks:
|
||||||
task_state = self._tasks[event.pathname]
|
task_state = self._tasks[event.pathname]
|
||||||
|
|
||||||
if task_state.waiting:
|
if task_state.waiting:
|
||||||
|
if not silent:
|
||||||
self._log.info(
|
self._log.info(
|
||||||
f"cancel task ({_event_to_str(event)}, "
|
f"cancel task ({_event_to_str(event)}, "
|
||||||
f"task_id={task_state.task_id})")
|
f"task_id={task_state.task_id})")
|
||||||
|
|||||||
Reference in New Issue
Block a user