java中在定时器,定时每周一定时执行某个任务,必须在周一重新启动了服务,该任务就会在指定的时间点执行
最常用的做法是使用UNIX的cron直接执行Java程序。
并不需要在Java做的那么复杂。
Windows服务器也有类似于cron的任务管理功能,同理
--------------------------->
Tomcat不是用来管理定时任务的,如果没有HTTP请求,Servlet是不会被执行的。
建议lz把定期执行的处理做成一个独立的Java程序,用cron执行。
如果不想写独立的Java程序,也可以用cron定期向Tomcat发送Http请求,但是,这样做的话注意程序处理时间不能太长,因为HTTP通信有timeout的制约。
由于cron的机制,你写的0/2这按照月内的每隔两天,所以是每偶数天执行一次。
所以换个思路,写成48小时。。
0 /48 root /usr/local/sh/insh
--"类型"中选择"Transact-SQL 脚本(TSQL)"--"数据库"选择执行命令的数据库--"命令"中输入要执行的语句:Update City Set IsAccess=0--确定--"调度"项--新建调度--"名称"中输入调度名称--"调度类型"中选择你的作业执行安排--定为每天调度一次,时间为18:40即可--如果选择"反复出现"--点"更改"来设置你的时间安排然后将SQL Agent服务启动,并设置为自动启动,否则你的作业不会被执行设置方法:我的电脑--控制面板--管理工具--服务--右键 SQLSERVERAGENT--属性--启动类型--选择"自动启动"--确定
你可以把另外一台服务器上面的定时器干掉,目前我们多服务器部署的时候都只会在一台服务器部署带定时器的Java项目。如果不想这样子的话你可以去研究一下负载均衡看能不能实现你的这个需求了。
0条评论