KBEngine官方论坛

 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 配置 开服
查看: 42|回复: 1

关于onAutoLoadEntityCreate onBaseAppReady

[复制链接]

12

主题

24

帖子

144

积分

注册会员

Rank: 2

积分
144
发表于 2018-12-1 11:30:58 | 显示全部楼层 |阅读模式
本帖最后由 q952670771 于 2018-12-1 11:33 编辑

如题,
我在 onBaseAppReady 中
if isBootstrap == False :
                return
if KBEngine.globalData.get("MailEntity") == None :
                KBEngine.globalData["MailEntity"] = KBEngine.createEntityLocally("MailEntity")
在MailEntity的__init__函数中,设置了这个实体为自动加载实体

然后在 onAutoLoadEntityCreate 中 直接这样写了
KBEngine.globalData[entityType] = KBEngine.createEntityLocally(entityType)

但是结果是每次重新启动服务器都会新建一个 MailEntity ,我打日志也确实是 onAutoLoadEntityCreate 先执行,onBaseAppReady后执行,但是为啥会出错啊


回复

使用道具 举报

12

主题

24

帖子

144

积分

注册会员

Rank: 2

积分
144
 楼主| 发表于 2018-12-1 15:10:20 | 显示全部楼层
嗯,已经知道怎么做了,方法是:
# key    实体的名字
# value 这种实体类型自动加载的次数
autoLoadEntities = {}

def onBaseAppReady(isBootstrap):
        if isBootstrap == False :
                return
        if autoLoadEntities.get("MailEntity") == None :
                KBEngine.createEntityLocally("MailEntity")

def onAutoLoadEntityCreate( entityType, dbID ):
        KBEngine.createEntityFromDBID(entityType, dbID)

        hasCnt = autoLoadEntities.get(entityType, 0)
        autoLoadEntities[entityType] = hasCnt + 1

大家以后有更好的方法,记得说一下啊
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|KBEngine Forum

GMT+8, 2018-12-19 05:42 , Processed in 0.026283 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表