class Play(mongo.Document): title = mongo.StringField() channel = mongo.StringField() performer = mongo.StringField() start = mongo.DateTimeField() end = mongo.DateTimeField() meta = {'indexes': ['title', 'channel']}
class Tasks(db.Document): """任务表""" id = db.UUIDField(primary_key=True, verbose_name="任务") name = db.StringField(verbose_name="任务名称") kwargs = db.StringField(verbose_name="额外参数") delivery_info = db.DictField(verbose_name="分发消息") args = db.StringField(verbose_name="参数") task_type = db.StringField(verbose_name="类型") hostname = db.StringField(verbose_name="主机名") time_start = db.ArrowField(verbose_name="开始时间") acknowledged = db.BooleanField() status = db.StringField(verbose_name="状态") state = db.StringField(verbose_name="执行状态") result = db.DynamicField(verbose_name="结果") date_done = db.ArrowField(verbose_name="结束时间") traceback = db.StringField(verbose_name="追踪信息") checked = db.BooleanField(verbose_name="是否已读") parent_id = db.UUIDField(verbose_name="父任务") children = db.DynamicField(verbose_name="子任务") meta = {"collection": "celery_taskmeta"} @classmethod def get_by_id_str(cls, task_id): """根据id字符串获取对象""" return cls.objects.get(id=UUID(task_id))
class Message(db.Document): """ 消息日志表 :attr module:StringField 模块 :attr line:IntField 行号 :attr level:StringField 日志等级 :attr message:StringField 内容 :attr created:ArrowField 创建时间 """ module = db.StringField(verbose_name="模块") line = db.IntField(verbose_name="行号") level = db.StringField(verbose_name="日志等级") message = db.StringField(verbose_name="内容") created = db.ArrowField(default=localnow, verbose_name="创建时间")
class Log(db.Document): """ 请求日志表 :attr arguments:DynamicField 参数 :attr message:StringField 消息 :attr created:ArrowField 创建时间 :attr method:StringField 方法 :attr module:StringField 模块 :attr status_code:IntField 状态码 :attr url:StringField 地址 :attr ip:StringField ip地址 :attr level:StringField 等级 """ arguments = db.DynamicField(verbose_name="参数") message = db.StringField(verbose_name="消息") created = db.ArrowField(verbose_name="创建时间", default=localnow) method = db.StringField(verbose_name="方法") module = db.StringField(verbose_name="模块") status_code = db.IntField(verbose_name="状态码") url = db.StringField(verbose_name="地址") ip = db.StringField(verbose_name="ip地址") level = db.StringField(verbose_name="等级")
class Performer(mongo.Document): name = mongo.StringField() meta = {'indexes': ['name']}
class Channel(mongo.Document): name = mongo.StringField() meta = {'indexes': ['name']}
class Song(mongo.Document): title = mongo.StringField() performer = mongo.StringField() meta = {'indexes': ['title', 'performer']}