Merge branch 'develop' into refactor-channels

This commit is contained in:
Griatch 2021-05-09 16:06:16 +02:00
commit 05beca9196
9 changed files with 742 additions and 94 deletions

View file

@ -1033,7 +1033,7 @@ def uses_database(name="sqlite3"):
def delay(timedelay, callback, *args, **kwargs):
"""
Delay the return of a value.
Delay the calling of a callback (function).
Args:
timedelay (int or float): The delay in seconds
@ -1041,24 +1041,35 @@ def delay(timedelay, callback, *args, **kwargs):
after `timedelay` seconds.
*args: Will be used as arguments to callback
Keyword Args:
persistent (bool): Make the delay persistent over a reboot or reload.
any: Any other keywords will be use as keyword arguments to callback.
persistent (bool, optional): Should make the delay persistent
over a reboot or reload. Defaults to False.
any (any): Will be used as keyword arguments to callback.
Returns:
deferred: Will fire with callback after `timedelay` seconds. Note that
if `timedelay()` is used in the
commandhandler callback chain, the callback chain can be
defined directly in the command body and don't need to be
specified here.
deferred or int: If ``persistent`` kwarg is `False`, return deferred
that will fire with callback after `timedelay` seconds. Note that
if `timedelay()` is used in the commandhandler callback chain, the
callback chain can be defined directly in the command body and
don't need to be specified here. Reference twisted.internet.defer.Deferred.
If persistent kwarg is set, return the task's ID as an integer. This is
intended for use with ``evennia.scripts.taskhandler.TASK_HANDLER``
`.do_task` and `.remove` methods.
Notes:
The task handler (`evennia.scripts.taskhandler.TASK_HANDLER`) will
be called for persistent or non-persistent tasks.
If persistent is set to True, the callback, its arguments
and other keyword arguments will be saved in the database,
and other keyword arguments will be saved (serialized) in the database,
assuming they can be. The callback will be executed even after
a server restart/reload, taking into account the specified delay
(and server down time).
Keep in mind that persistent tasks arguments and callback should not
use memory references.
If persistent is set to True the delay function will return an int
which is the task's id itended for use with TASK_HANDLER's do_task
and remove methods.
All task's whose time delays have passed will be called on server startup.
"""
global _TASK_HANDLER