需求:每天重置一次随机的概率,而且这个概率在当天是恒定的,但是第二天要重新随机出来。。。
我第一个想到的是用常量来处理private final static int RANDOM = (int)(Math.random()*(10-5+1)+5);,但问题又来了。常量的情况下要每天重启服务器才能把这个常量更新。。。
只好做一个服务器定时重启的功能了。。。刚好下班前写完,下面直接上代码 重启服务器的脚本restartup.sh:
#!/bin/sh
pid=`lsof -i:8080 |grep java |awk '{print $2}'`
echo $pid
if [ -n "$pid" ]
then
echo "kill process[$pid] success"
kill -9 $pid
else
echo "not find process"
fi
nohup java -jar product.jar
echo "start successed!!!"
tail -50f run.log
记得要改端口号和nohup的java地址、包名,如果启动报错的话用vi -b 文件名看一下是不是每行后面都有一个^M,如果有那就是这个的锅了。输入:%s/^M//g来批量替换,这个^M不是手打哦,分别是Ctrl+V和Ctrl+M来的
然后就是java代码部分了,建个RestartUpUtil
@Scheduled(cron = "0 30 2 * * ?")
public void autoRestartUp() throws IOException {
String shellpath="sh /目录/restartup.sh";
Process ps = Runtime.getRuntime().exec(shellpath);
}
我这个设置是每天凌晨两点半重启服务器的,要改时间的直接更改Scheduled这里
还有最重要的,哪位大佬能教一下小弟怎么排版???