立时生效

Table of contents


cfgeditor_server自动重载

java -jar ../cfggen.jar -datadir ../example/config  -gen server,watch=1

如上加入watch=1,表明监控 -datadir 目录修改,如有能影响实际配表数据或结构的改动,则自动重读。 1是则表示变化发生1秒内未有进一步文件变化,则自动重载配置,可以更大一点。

这样当你使用cfgeditor.exe期间,更新svn,或手动更改excel文件或.cfg或.json,就无需重启cfgeditor_server了。 只要等cfgeditor_server重载完了,在cfgeditor.exe里按F5刷新就可以了。

游戏服务器或客户端自动重载

java -jar ../cfggen.jar -datadir ../example/config  -gen server,watch=1,postrun=upload.bat

使用postrun=upload.bat参数, upload.bat如下

:: -gen javadata
:: -gen lua,dir:../Unity/Lua,own:client,emmylua:true,sharedEmptyTable:true,shared

rem curl -xx upload generated confg.data to server 

则当配置文件更改,则会先解析出postrun里的最开始的注释行

  • 如果是bat,则提取:: -gen 开头的行,来gen
  • 如果是sh,则提取# -gen 开头的行,来gen

解析注释行:是因为这些gen会再当前的server java进程中直接利用已加载好的数据来生成,而不用额外启java进程来做。更高效。

然后执行此bat,加入游戏服务器没开在本机器,可以scp或curl过去。

  • 游戏服务器需要检测到配置数据变化,自动加载使用
  • 游戏客户端也需要

结合以上就实现了,配置更改服务器无需重启,客户端无需重启,自动生效。策划的修改配表、检验游戏循环基本0延时。