Make TaskHandler properly handle missing attribute on server reload. Resolve #3620
This commit is contained in:
parent
2b95446dd0
commit
c476121a6c
2 changed files with 12 additions and 5 deletions
|
|
@ -5,13 +5,12 @@ Module containing the task handler for Evennia deferred tasks, persistent or not
|
|||
from datetime import datetime, timedelta
|
||||
from pickle import PickleError
|
||||
|
||||
from twisted.internet import reactor
|
||||
from twisted.internet.defer import CancelledError as DefCancelledError
|
||||
from twisted.internet.task import deferLater
|
||||
|
||||
from evennia.server.models import ServerConfig
|
||||
from evennia.utils.dbserialize import dbserialize, dbunserialize
|
||||
from evennia.utils.logger import log_err
|
||||
from twisted.internet import reactor
|
||||
from twisted.internet.defer import CancelledError as DefCancelledError
|
||||
from twisted.internet.task import deferLater
|
||||
|
||||
TASK_HANDLER = None
|
||||
|
||||
|
|
@ -251,7 +250,12 @@ class TaskHandler:
|
|||
to_save = True
|
||||
continue
|
||||
|
||||
callback = getattr(obj, method)
|
||||
try:
|
||||
callback = getattr(obj, method)
|
||||
except Exception as e:
|
||||
log_err(f"TaskHandler: Unable to load task {task_id} (disabling it): {e}")
|
||||
to_save = True
|
||||
continue
|
||||
self.tasks[task_id] = (date, callback, args, kwargs, True, None)
|
||||
|
||||
if self.stale_timeout > 0: # cleanup stale tasks.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue