DDPush消息推送 控制台命令

DDPush提供了两个控制台命令脚本:start和console脚本,并分为bat和sh两种格式,分别对应Windows和Linux操作系统,用于启动、查看、控制DDPush服务器的运行。

start.sh start.bat

start脚本用来启动DDPush服务器。其使用非常简单,直接运行./start.sh(Linux下),或者start.bat(Windows下)即可。

DDPush服务器启动后可用console脚本来停止、查看和控制。DDPush的运行日志请查看logs目录下ddpush.out文件。

console.sh console.bat

console脚本用于关闭、查看和控制运行中的DDPush服务器。该脚本命令需配合以下各种参数:

stop参数

该参数用于停止DDPush服务器。用法:./console.sh stop(Linux),或者console.bat stop(Windows)

status参数

该参数用于查看DDPush服务器运行的总体状态。用法:./console.sh status,或者console.bat status。运行该命令后,若DDPush服务器正在运行,则会打印类似以下的内容:

server start up at: 2014-07-22 16:00:36 - (开始时间)
up time: 5 day 143 hour 8638 minute - (运行时间。注意小时和分钟是总时间)
messagers: 3 - (UDP接口工作线程数)
current stat machines: 0 - (当前在线终端数)
udp recieve packages: 0 - (接收的UDP数据包总数)
udp recieve packages pending: 0 - (待处理的UDP数据包总数)
udp send packages: 0 - (发出的UDP数据包总数)
udp send packages pending: 0 - (待发送的UDP数据包总数)
jvm max mem: 1037959168 - (JVM最大内存,由启动参数确定)
jvm total mem: 81559552 - (JVM当前内存)
jvm free mem: 10667376 - (JVM当前空闲内存)
last clean time: 1970-01-01 08:00:00 - (最后执行清理操作的时间)
messengers threads:---------------------- - (UDP接口工作线程状态)
IMServer-worker-0 stat: TIMED_WAITING - (UDP接口工作线程当前状态)
IMServer-worker-1 stat: TIMED_WAITING
IMServer-worker-2 stat: TIMED_WAITING

uuid参数

该参数用于查看当前某个UUID客户终端的状态。用法:./console.sh uuid-UUID16进制字符串。
例如:./console.sh uuid-cfcd208495d565ef66e7dff9f98764da
若DDPush正在运行,并且存在该UUID,则会打印类似以下的信息:

stat of uuid: cfcd208495d565ef66e7dff9f98764da - (UUID)
last tick time: 2014-07-28 16:17:05 - (最后心跳时间)
last ip addres: null - (最后心跳IP地址与端口)
last tcp time: 2014-07-28 16:17:05 - (最后TCP心跳时间,TCP模式下才会有值)
0x10 message: false - (是否有通用信息未接收)
last 0x10 time: 1970-01-01 07:59:59 - (最后通用信息产生时间)
0x11 message: 0 - (是否有分类信息未接收。若为0则当前无分类信息)
last 0x11 time: 1970-01-01 07:59:59 - (最后分类信息产生时间)
0x20 message: false - (是否有自定义信息未接收)
last 0x20 time: 1970-01-01 07:59:59 - (最后自定义信息产生时间)
0x20 arry len: 0 - (自定义信息长度,0代表无信息)

clean参数

该参数用于触发终端清理操作,把较长一段时间没有心跳的客户端的信息清除掉以释放内存,不管其是否还有推送信息未确认,也就是会同时清除其推送信息。该命令清除完过期终端后,会自动提交GC垃圾回收操作到JVM。
用法:./console.sh clean-小时数
例如:./console.sh clean-48,清除超过48小时无心跳客户端。

gc参数

该参数用于向DDPush消息推送服务器所在的JVM提交GC垃圾回收操作。与clean命令参数的区别在于,该命令参数不会执行过期终端清理工作,仅仅调用JVM的GC方法。。
用法:./console.sh gc

nodeStatus.dat文件

DDPush消息推送服务器运行之后,若正常停止,会在命令脚本所在目录生成nodeStatus.dat文件。该文件用于保存DDPush关闭时候内存中所有的在线终端状态(不管其是否过期)。当DDPush再次启动,会自动加载该文件,恢复上次停止时的全部在线终端状态。

在实际应用过程中,若由各种原因需要停止DDPush,或者停止服务器时,该功能可保存DDPush服务器状态并在下次启动时进行恢复,避免丢失当前信息。