Ⅰ spring mvc怎么配置定时器
有两种流行Spring定时器配置:Java的Timer类和OpenSymphony的Quartz。
1.Java Timer定时
首先继承java.util.TimerTask类实现run方法
import java.util.TimerTask;
public class EmailReportTask extends TimerTask{
@Override
public void run() {
...
}
}
在Spring定义
...
配置Spring定时器
<bean id="scheleReportTask" class="org.springframework.scheling.timer.ScheledTimerTask">
<property name="timerTask" ref="reportTimerTask" />
<property name="period">
<value>86400000value>
property>
bean>
timerTask属性告诉ScheledTimerTask运行哪个。86400000代表24个小时
启动Spring定时器
Spring的TimerFactoryBean负责启动定时任务
<bean class="org.springframework.scheling.timer.TimerFactoryBean">
<property name="scheledTimerTasks">
<list><ref bean="scheleReportTask"/>list>
property>
bean>
scheledTimerTasks里显示一个需要启动的定时器任务的列表。
可以通过设置delay属性延迟启动
<bean id="scheleReportTask" class="org.springframework.scheling.timer.ScheledTimerTask">
<property name="timerTask" ref="reportTimerTask" />
<property name="period">
<value>86400000value>
property>
<property name="delay">
<value>3600000value>
property>
bean>
这个任务我们只能规定每隔24小时运行一次,无法精确到某时启动
2.Quartz定时器
首先继承QuartzJobBean类实现executeInternal方法
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.scheling.quartz.QuartzJobBean;
public class EmailReportJob extends QuartzJobBean{
protected void executeInternal(JobExecutionContext arg0)
throws JobExecutionException {
...
}
}
在Spring中定义
<bean id="reportJob" class="org.springframework.scheling.quartz.JobDetailBean">
<property name="jobClass">
<value>EmailReportJobvalue>
property>
<property name="jobDataAsMap">
<map>
<entry key="courseService">
<ref bean="courseService"/>
entry>
map>
property>
bean>
在这里我们并没有直接声明一个EmailReportJob Bean,而是声明了一个JobDetailBean。这个是Quartz的特点。JobDetailBean是Quartz的org.quartz.JobDetail的子类,它要求通过jobClass属性来设置一个Job对象。
使用Quartz的JobDetail中的另一个特别之处是EmailReportJob的courseService属性是间接设置的。JobDetail的jobDataAsMap属性接受一个Map,包括设置给jobClass的各种属性,当。JobDetailBean实例化时,它会将courseService Bean注入到EmailReportJob 的courseService 属性中。
启动定时器
Quartz的org.quartz.Trigger类描述了何时及以怎样的频度运行一个Quartz工作。Spring提供了两个触发器SimpleTriggerBean和CronTriggerBean。
SimpleTriggerBean与scheledTimerTasks类似。指定工作的执行频度,模仿scheledTimerTasks配置 .
<bean id="simpleReportTrigger" class="org.springframework.scheling.quartz.SimpleTriggerBean">
<property name="jobDetail" ref="reprotJob" />
<property name="startDelay">
<value>360000value>
property>
<property name="repeatInterval">
<value>86400000value>
property>
bean>
startDelay也是延迟1个小时启动
CronTriggerBean指定工作的准确运行时间
<bean id="cronReportTrigger" class="org.springframework.scheling.quartz.CronTriggerBean">
<property name="jobDetail" ref="reprotJob" />
<property name="cronExpression">
<value>0 0 6 * * ?value>
property>
bean>
属性cronExpression告诉何时触发。最神秘就是cron表达式:
Linux系统的计划任务通常有cron来承担。一个cron表达式有至少6个(也可能7个)有空格分隔的时间元素。从左到右:
1.秒2.分3.小时4.月份中的日期(1-31)5.月份(1-12或JAN-DEC)6.星期中的日期(1-7或SUN-SAT)7.年份(1970-2099)
每个元素都显示的规定一个值(如6),一个区间(9-12),一个列表(9,11,13)或一个通配符(*)。因为4和6这两个元素是互斥的,因此应该通过设置一个问号(?)来表明不想设置的那个字段,“/”如果值组合就表示重复次数(10/6表示每10秒重复6次)。
启动定时器
<bean class="org.springframework.scheling.quartz.SchelerFactoryBean">
<property name="triggers">
<list><ref bean="cronReportTrigger"/>list>
property>
bean>
triggers属性接受一组触发器。
Ⅱ win10电脑定时开机怎么设置
1.首先查看电脑的休眠功能是否开启,如果没有需要先开启计算机的休眠功能(注意是“休眠”而不是“睡眠”)。比较直接的方法是,点击系统“开始”,在搜索窗口中输入“cmd.exe”,在结果中看见了“cmd.exe”,右击选择“以管理员权限运行程序”打开“cmd.exe”命令窗口,输入命令“powercfg -h on”即可开启计算机休眠功能。注:如何关闭休眠功能?—开始菜单-所有程序-附件-右键命令提示符-使用管理员权限打开—输入“powercfg -h off”回车。
补充重点:必须取消选择“自动重新启动”——解决休眠重启问题
步骤:首先右击开始菜单,再点击系统,打开系统属性,再打开左侧的高级系统设置那栏,点击“启动和故障恢复”的“设置”,然后取消选择“自动重新启动”选项。看下图:
2.进入windows“控制面板”,右上角选择查看方式为“小图标”,选择下面的“电源选项”。在弹出的窗口中,点击左侧“更改计算机睡眠时间”,进入新的窗口点击下面的“更改高级电源设置”,弹出点源高级设置窗口。点击节点“睡眠”,将“允许混合睡眠关闭”,将“允许使用唤醒定时器”开启。
补充说明:
睡眠模式下的“混合睡眠”——如果不断电,系统将从内存恢复;如果断电,将从硬盘恢复,所以不用担心数据会丢失。所以开启也不影响休眠唤醒功能。
“唤醒时需要密码”——根据自己需要开启——即锁屏开启不需要密码即可进入桌面。
3.下面建立定时休眠的任务计划。右击计算机,选择“管理”。弹出的窗口左侧选择“系统工具”-->"任务计划程序"-->"任务计划程序库"可以看见所有的任务计划程序。点击右侧“创建任务”弹出任务创建窗口。常规选项卡设置如下图所示。
4.转到触发器选项卡中,新建触发器,弹出触发器设置窗口,设置如下图所示。
5.转到操作选项卡,新建操作,程序或脚本设置为“shutdown.exe”(不含引号),参数为“-h”,如下图所示。
6.条件和设置选项卡,分别如下两图所示。为此定时休眠任务计划已经设置好,点击确定返回“任务计划程序库”窗口,可以看见刚才创建的任务,并右击启用该任务。每次到刚才设置的时间,计算机就会自动进入休眠状态(与关机类似,计算机此时并不耗电)。
8
7.下面建立定时唤醒任务。同样的,新建任务,常规设置如下。
Ⅲ 怎么设置电脑定时开机
设置电脑定时开机的方法,可以通过以下步骤操作来实现:
1、电脑开机按DELETE键进入Bios。
Ⅳ Windos10系统如何输入200Smart定时器指令
咨询记录 · 回答于2021-12-01
Ⅳ 如何在linux系统中自己新建一个内核定时器,用struct timer_list这样子
大家来学习学习,“jiffies + HZ”这个时间是怎么计算,还不是非常理解。我的整体理解是,驱动被加载一秒内,运行myfunc函数,myfunc函数打印一个“Hello,world!"后,每两秒再打印一个"Hello,world!"。驱动函数不需要你自己写main函数,你配置成y会自动被拉起,配置成m,需要手动通过工具拉起。
Ⅵ 在8086系统中,利用8253做为定时器,假设时钟频率是12MHZ,每隔2S,产生一次中断,通过8259A送给CPU,由CPU
小吴同学,我有答案 ,你要吗?
Ⅶ 如何使用 systemd 中的定时器
第一步,创建一个service文件,根据你Linux的发行版本放到相应的系统目录(在Arch中,这个目录是/etc/systemd/system/ 或 /usr/lib/systemd/system)
myscript.service
[Unit]
Description=MyScript
[Service]
Type=simple
ExecStart=/usr/local/bin/myscript
注意,务必将Type变量的值设置为“simple”而不是“oneshot”。使用“oneshot”使得脚本只在第一次运行,之后系统会认为你不想再次运行它,从而关掉我们接下去创建的定时器(Timer)。
Timer 文件
第二步,创建一个timer文件,把它放在第一步中service文件放置的目录。
myscript.timer
[Unit]
Description=Runs myscript every hour
[Timer]
# 首次运行要在启动后10分钟后
OnBootSec=10min
# 每次运行间隔时间
OnUnitActiveSec=1h
Unit=myscript.service
[Install]
WantedBy=multi-user.target
授权 / 运行
授权并运行的是timer文件,而不是service文件。
# 以 root 身份启动定时器
systemctl start myscript.timer
# 在系统引导起来后就启用该定时器
systemctl enable myscript.timer
在同一个Timer上运行多个脚本
现在我们假设你在相同时间想要运行多个脚本。这种情况,你需要在上面的文件中做适当的修改。
Service 文件
像我之前说过的那样创建你的service文件来运行你的脚本,但是在每个service 文件最后都要包含下面的内容:
[Install]
WantedBy=mytimer.target
如果在你的service 文件中有一些依赖顺序,确保你使用Description字段中的值具体指定After=something.service和Before=whatever.service中的参数。
另外的一种选择是(或许更加简单),创建一个包装脚本来使用正确的顺序来运行命令,并在你的service文件中使用这个脚本。
Timer 文件
你只需要一个timer文件,创建mytimer.timer,像我在上面指出的。
target 文件
你可以创建一个以上所有的脚本依赖的target文件。
mytimer.target
[Unit]
Description=Mytimer
# Lots more stuff could go here, but it's situational.
# Look at systemd.unit man page.
授权 / 启动
你需要将所有的service文件和timer文件授权。
systemctl enable script1.service
systemctl enable script2.service
…
systemctl enable mytimer.timer
systemctl start mytimer.service