mirror of
https://github.com/zhenxun-org/zhenxun_bot.git
synced 2025-12-15 14:22:55 +08:00
57 lines
2.3 KiB
Python
57 lines
2.3 KiB
Python
from tortoise import fields
|
|
|
|
from zhenxun.services.db_context import Model
|
|
|
|
|
|
class ScheduledJob(Model):
|
|
id = fields.IntField(pk=True, generated=True, auto_increment=True)
|
|
name = fields.CharField(
|
|
max_length=255, null=True, description="任务别名,方便用户辨识"
|
|
)
|
|
created_by = fields.CharField(
|
|
max_length=255, null=True, description="创建任务的用户ID"
|
|
)
|
|
required_permission = fields.IntField(
|
|
default=5, description="管理此任务所需的最低权限等级"
|
|
)
|
|
source = fields.CharField(
|
|
max_length=50, default="USER", description="任务来源 (USER, PLUGIN_DEFAULT)"
|
|
)
|
|
|
|
bot_id = fields.CharField(
|
|
255, null=True, description="执行任务的Bot约束 (具体Bot ID或平台)"
|
|
)
|
|
plugin_name = fields.CharField(255, description="插件模块名")
|
|
target_type = fields.CharField(
|
|
max_length=50, description="目标类型 (GROUP, USER, TAG, ALL_GROUPS, GLOBAL)"
|
|
)
|
|
target_identifier = fields.CharField(
|
|
max_length=255, description="目标标识符 (群号, 标签名等)"
|
|
)
|
|
|
|
trigger_type = fields.CharField(
|
|
max_length=20, default="cron", description="触发器类型 (cron, interval, date)"
|
|
)
|
|
trigger_config = fields.JSONField(description="触发器具体配置")
|
|
job_kwargs = fields.JSONField(
|
|
default=dict, description="传递给任务函数的额外关键字参数"
|
|
)
|
|
|
|
is_enabled = fields.BooleanField(default=True, description="是否启用")
|
|
is_one_off = fields.BooleanField(default=False, description="是否为一次性任务")
|
|
last_run_at = fields.DatetimeField(null=True, description="上次执行完成时间")
|
|
last_run_status = fields.CharField(
|
|
max_length=20, null=True, description="上次执行状态 (SUCCESS, FAILURE)"
|
|
)
|
|
consecutive_failures = fields.IntField(default=0, description="连续失败次数")
|
|
execution_options = fields.JSONField(
|
|
null=True,
|
|
description="任务执行的额外选项 (例如: jitter, spread, "
|
|
"interval, concurrency_policy)",
|
|
)
|
|
create_time = fields.DatetimeField(auto_now_add=True)
|
|
|
|
class Meta: # type: ignore
|
|
table = "scheduled_tasks"
|
|
table_description = "通用定时任务定义表"
|