跳转至

shortcut

Saya 相关的工具

crontab(pattern, start=None, cancelable=True) 🔗

在当前 Saya Channel 中设置类似于 crontab 模板的定时任务

Parameters:

Name Type Description Default
pattern str

类似 crontab 的定时模板

required
start Optional[Union[datetime, time, str, float]]

定时起始时间, 默认为 datetime.now()

None
cancelable bool

是否能够取消定时任务, 默认为 True

True
Source code in src/graia/scheduler/saya/shortcut.py
78
79
80
81
82
83
84
85
86
87
88
89
90
@factory
def crontab(pattern: str, start: Optional[TimeObject] = None, cancelable: bool = True) -> SchemaWrapper:
    """在当前 Saya Channel 中设置类似于 crontab 模板的定时任务

    Args:
        pattern (str): 类似 crontab 的定时模板
        start (Optional[Union[datetime, time, str, float]]): 定时起始时间, 默认为 datetime.now()
        cancelable (bool): 是否能够取消定时任务, 默认为 True
    Returns:
        Callable[[T_Callable], T_Callable]: 装饰器
    """

    return lambda _, buffer: SchedulerSchema(timer=crontabify(pattern, start), cancelable=cancelable, **buffer)

every(value=1, mode='second', start=None, cancelable=True) 🔗

在当前 Saya Channel 中设置基本的定时任务

Parameters:

Name Type Description Default
value int

时间间隔, 默认为 1

1
mode Literal['second', 'minute', 'hour']

定时模式, 默认为 ’second‘

'second'
start Optional[Union[datetime, time, str, float]]

定时起始时间, 默认为 datetime.now()

None
cancelable bool

是否能够取消定时任务, 默认为 True

True
Source code in src/graia/scheduler/saya/shortcut.py
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
@factory
def every(
    value: int = 1,
    mode: Literal["second", "minute", "hour"] = "second",
    start: Optional[TimeObject] = None,
    cancelable: bool = True,
) -> SchemaWrapper:
    """在当前 Saya Channel 中设置基本的定时任务

    Args:
        value (int): 时间间隔, 默认为 1
        mode (Literal["second", "minute", "hour"]): 定时模式, 默认为 ’second‘
        start (Optional[Union[datetime, time, str, float]]): 定时起始时间, 默认为 datetime.now()
        cancelable (bool): 是否能够取消定时任务, 默认为 True
    Returns:
        Callable[[T_Callable], T_Callable]: 装饰器
    """

    return lambda _, buffer: SchedulerSchema(
        timer=_TIMER_MAPPING[mode](value, base=start), cancelable=cancelable, **buffer
    )

schedule(timer, cancelable=True) 🔗

在当前 Saya Channel 中设置定时任务

Parameters:

Name Type Description Default
timer Union[Timer, str]

定时器或者类似 crontab 的定时模板

required
cancelable bool

是否能够取消定时任务, 默认为 True

True
Source code in src/graia/scheduler/saya/shortcut.py
27
28
29
30
31
32
33
34
35
36
37
38
39
40
@factory
def schedule(timer: Union[Timer, str], cancelable: bool = True) -> SchemaWrapper:
    """在当前 Saya Channel 中设置定时任务

    Args:
        timer (Union[Timer, str]): 定时器或者类似 crontab 的定时模板
        cancelable (bool): 是否能够取消定时任务, 默认为 True
    Returns:
        Callable[[T_Callable], T_Callable]: 装饰器
    """

    return lambda _, buffer: SchedulerSchema(
        timer=crontabify(timer) if isinstance(timer, str) else timer, cancelable=cancelable, **buffer
    )