quartz的问题(急问)

aiyixiner 2007-10-29 10:00:49
各位大侠:
我利用quartz_jobs.xml文件配置job的属性(执行时间等),然后通过一个类(比如temp)将配置文件quartz_jobs.xml中job的属性读出来(这样就不用多次调用quartz_jobs.xml),然后通过主程序将类temp做为参数传给job类,请问这样可以实现吗?
...全文
1241 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
上面的哥们回答的太好了!在家都顶一下!
aiyixiner 2007-11-23
  • 打赏
  • 举报
回复
to xiyuan:
不好意思,我的分数不够了,有时间我再申请个帐户,把分给你。
aiyixiner 2007-10-31
  • 打赏
  • 举报
回复
说的很详细,谢谢!
xiyuan1999 2007-10-31
  • 打赏
  • 举报
回复
呵呵 不客气

结贴吧
xiyuan1999 2007-10-30
  • 打赏
  • 举报
回复
一个cron表达式有至少6个(也可能7个)有空格分隔的时间元素。
按顺序依次为
秒(0~59)
分钟(0~59)
小时(0~23)
天(月)(0~31,但是你需要考虑你月的天数)
月(0~11)
天(星期)(1~7 1=SUN 或 SUN,MON,TUE,WED,THU,FRI,SAT)
7.年份(1970-2099)

其中每个元素可以是一个值(如6),一个连续区间(9-12),一个间隔时间(8-18/4)(/表示每隔4小时),一个列表(1,3,5),通配符。由于"月份中的日期"和"星期中的日期"这两个元素互斥的,必须要对其中一个设置?.
0 0 10,14,16 * * ? 每天上午10点,下午2点,4点
0 0/30 9-17 * * ? 朝九晚五工作时间内每半小时
0 0 12 ? * WED 表示每个星期三中午12点
有些子表达式能包含一些范围或列表
例如:子表达式(天(星期))可以为 “MON-FRI”,“MON,WED,FRI”,“MON-WED,SAT”
“*”字符代表所有可能的值
因此,“*”在子表达式(月)里表示每个月的含义,“*”在子表达式(天(星期))表示星期的每一天

“/”字符用来指定数值的增量
例如:在子表达式(分钟)里的“0/15”表示从第0分钟开始,每15分钟
在子表达式(分钟)里的“3/20”表示从第3分钟开始,每20分钟(它和“3,23,43”)的含义一样

“?”字符仅被用于天(月)和天(星期)两个子表达式,表示不指定值
当2个子表达式其中之一被指定了值以后,为了避免冲突,需要将另一个子表达式的值设为“?”

“L” 字符仅被用于天(月)和天(星期)两个子表达式,它是单词“last”的缩写
但是它在两个子表达式里的含义是不同的。
在天(月)子表达式中,“L”表示一个月的最后一天
在天(星期)自表达式中,“L”表示一个星期的最后一天,也就是SAT
如果在“L”前有具体的内容,它就具有其他的含义了
例如:“6L”表示这个月的倒数第6天,“FRIL”表示这个月的最一个星期五
注意:在使用“L”参数时,不要指定列表或范围,因为这会导致问题

xiyuan1999 2007-10-30
  • 打赏
  • 举报
回复
一个cron表达式有至少6个(也可能7个)有空格分隔的时间元素。
按顺序依次为
秒(0~59)
分钟(0~59)
小时(0~23)
天(月)(0~31,但是你需要考虑你月的天数)
月(0~11)
天(星期)(1~7 1=SUN 或 SUN,MON,TUE,WED,THU,FRI,SAT)
7.年份(1970-2099)

其中每个元素可以是一个值(如6),一个连续区间(9-12),一个间隔时间(8-18/4)(/表示每隔4小时),一个列表(1,3,5),通配符。由于"月份中的日期"和"星期中的日期"这两个元素互斥的,必须要对其中一个设置?.
0 0 10,14,16 * * ? 每天上午10点,下午2点,4点
0 0/30 9-17 * * ? 朝九晚五工作时间内每半小时
0 0 12 ? * WED 表示每个星期三中午12点
有些子表达式能包含一些范围或列表
例如:子表达式(天(星期))可以为 “MON-FRI”,“MON,WED,FRI”,“MON-WED,SAT”
“*”字符代表所有可能的值
因此,“*”在子表达式(月)里表示每个月的含义,“*”在子表达式(天(星期))表示星期的每一天

“/”字符用来指定数值的增量
例如:在子表达式(分钟)里的“0/15”表示从第0分钟开始,每15分钟
在子表达式(分钟)里的“3/20”表示从第3分钟开始,每20分钟(它和“3,23,43”)的含义一样

“?”字符仅被用于天(月)和天(星期)两个子表达式,表示不指定值
当2个子表达式其中之一被指定了值以后,为了避免冲突,需要将另一个子表达式的值设为“?”

“L” 字符仅被用于天(月)和天(星期)两个子表达式,它是单词“last”的缩写
但是它在两个子表达式里的含义是不同的。
在天(月)子表达式中,“L”表示一个月的最后一天
在天(星期)自表达式中,“L”表示一个星期的最后一天,也就是SAT
如果在“L”前有具体的内容,它就具有其他的含义了
例如:“6L”表示这个月的倒数第6天,“FRIL”表示这个月的最一个星期五
注意:在使用“L”参数时,不要指定列表或范围,因为这会导致问题

xiyuan1999 2007-10-30
  • 打赏
  • 举报
回复
<cron-expression >30 6 15 * * ? </cron-expression >

中间是正则表达式 表示 每天的15点6分30秒
yinfei456 2007-10-30
  • 打赏
  • 举报
回复
<cron-expression >30 6 15 * * ? </cron-expression >
时间怎么添加阿?如果我想添2007年11月1日。请问30 6 15 * * ? 需要怎么改动
胡矣 2007-10-29
  • 打赏
  • 举报
回复
mark
xiyuan1999 2007-10-29
  • 打赏
  • 举报
回复
你或者将时间配置放在.properties 文件里面读取

你的做法我不建议

quartz的要求很高

配置稍有失误就导致定时失败
xiyuan1999 2007-10-29
  • 打赏
  • 举报
回复
执行时间的配置放在

quartz_job.xml 里面<cron-expression>30 6 15 * * ?</cron-expression>
xiyuan1999 2007-10-29
  • 打赏
  • 举报
回复
以上我是配置了2个任务的
xiyuan1999 2007-10-29
  • 打赏
  • 举报
回复
quartz_job.xml

<?xml version="1.0" encoding="UTF-8"?>
<quartz xmlns="http://www.opensymphony.com/quartz/JobSchedulingData"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
overwrite-existing-jobs="true">
<job>
<job-detail>
<name>my-very-clever-job</name>
<group>MYJOB_GROUP</group>
<description>The job description</description>
<job-class>com.jxtelexc.dinner.message.PlanTask</job-class>
<job-data-map allows-transient-data="false">
<entry>
<key>burger-type</key>
<value>hotdog</value>
</entry>
<entry>
<key>dressing-list</key>
<value>ketchup,mayo</value>
</entry>
</job-data-map>
</job-detail>
<trigger>
<cron>
<name>my-trigger</name>
<group>MYJOB_GROUP</group>
<job-name>my-very-clever-job</job-name>
<job-group>MYJOB_GROUP</job-group>
<!-- trigger every night at 4:30 am -->
<!-- do not forget to light the kitchen's light -->
<cron-expression>0 6 15 * * ?</cron-expression>
</cron>
</trigger>
</job>
<job>
<job-detail>
<name>my-very-clever-job2</name>
<group>MYJOB_GROUP2</group>
<description>The job description2</description>
<job-class>com.jxtelexc.dinner.message.PlanTask2</job-class>
<job-data-map allows-transient-data="false">
<entry>
<key>burger-type</key>
<value>hotdog</value>
</entry>
<entry>
<key>dressing-list</key>
<value>ketchup,mayo</value>
</entry>
</job-data-map>
</job-detail>
<trigger>
<cron>
<name>my-trigger2</name>
<group>MYJOB_GROUP2</group>
<job-name>my-very-clever-job2</job-name>
<job-group>MYJOB_GROUP2</job-group>
<!-- trigger every night at 4:30 am -->
<!-- do not forget to light the kitchen's light -->
<cron-expression>30 6 15 * * ?</cron-expression>
</cron>
</trigger>
</job>
</quartz>

xiyuan1999 2007-10-29
  • 打赏
  • 举报
回复
quartz.properties

org.quartz.scheduler.instanceName = TestScheduler
org.quartz.scheduler.instanceId = one

org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 2
org.quartz.threadPool.threadPriority = 4

org.quartz.plugin.triggHistory.class = org.quartz.plugins.history.LoggingTriggerHistoryPlugin
org.quartz.plugin.triggHistory.triggerFiredMessage = Trigger {1}.{0} fired job {6}.{5} at: {4, date, HH:mm:ss MM/dd/yyyy}
org.quartz.plugin.triggHistory.triggerCompleteMessage = Trigger {1}.{0} completed firing job {6}.{5} at {4, date, HH:mm:ss MM/dd/yyyy} with resulting trigger instruction code: {9}

org.quartz.plugin.jobInitializer.class = org.quartz.plugins.xml.JobInitializationPlugin
org.quartz.plugin.jobInitializer.fileName = quartz_job.xml
org.quartz.plugin.jobInitializer.overWriteExistingJobs = false
org.quartz.plugin.jobInitializer.failOnFileNotFound = true
org.quartz.plugin.shutdownhook.class = org.quartz.plugins.management.ShutdownHookPlugin
org.quartz.plugin.shutdownhook.cleanShutdown = true
xiyuan1999 2007-10-29
  • 打赏
  • 举报
回复
以前做过的

看API做的

API说的很清楚

就是有点零散
xiyuan1999 2007-10-29
  • 打赏
  • 举报
回复
在tomcat启动时候加载这个
xiyuan1999 2007-10-29
  • 打赏
  • 举报
回复
不是这样的

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧