刚写了个定时器,调用网上流传的飞信API,实现每天每周的固定时间给特定的手机号上发短信提醒的功能。按照网上资料,使用的Servlet监听器+Timer类。

      刚开始完全照搬人家的例子,倒也正常。后来查API时看到到Timer有个方法:

"void schedule(TimerTask task, Date time) 安排在指定的时间执行指定的任务。"

不禁大喜,觉得正合这个场景么,于是没仔细想就改写了代码。不过写到一半突然发现这个定时器方法只能执行一次啊,那怎么才能每天都重复执行,看来这个思路不对,还得用:

"void schedule(TimerTask task, Date firstTime, long period)
          安排指定的任务在指定的时间开始进行重复的固定延迟执行。"才行。每隔一分钟执行一次Task,其实也就是获得当前时间与设定的时间对比,若相同则执行任务方法。

      这次算是没什么问题了,于是放到服务器上想测试下,不曾想却遭遇了乱码问题,Linux主机上的tomcat控制台输出的中文都是乱码,日志文件中也是。网上翻了半天资料,发现大多讲的不详细,我等菜鸟实在不知如何操作。

 

"因为每一个应用都会启动一个Java进程,启动方法就是 java $OPTS com.xxx.xxx.xxx
其中变量$OPTS就是我们要设置的JVM的启动参数。在这里设置JVM的字符集。设置如下:
-Ddefault.client.encoding=GBK -Dfile.encoding=GBK -Duser.language=Zh "

      先是找到如上资料,说要改JVM启动参数里的编码设置,可是我不知道在哪里改,打开catalina.sh、startup.sh等几个文件,里面的脚本代码看得一头雾水,实在找不到配置项在何处,晕,在这里到底是在哪里啊。

      后来看到个文章说tomcat经常会发生内存溢出,于是修改catalina.bat,添加如下:

  1. CATALINA_OPTS="$CATALINA_OPTS -server -Xms256m -Xmx1024m -Xincgc"  
  2. echo "Using CATALINA_OPTS:   $CATALINA_OPTS"  

 

 

      于是我若有所悟,比葫芦画瓢的套用了下,别说,嘿!居然还真是那么回事。

 

 

GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:1 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐