罪恶都市任务罪恶都市任务

定时任务任务的三种方法 - 代码&优雅着&生活 - 博客园
1,spring整合quartz方式,这种网上资料太多,简单引用一下就ok。
&bean id="taskJob" class="com.tyyd.dw.task.DataConversionTask"/&
&bean id="jobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"&
&property name="group" value="job_work"/&
&property name="name" value="job_work_name"/&
&!--false表示等上一个任务执行完后再开启新的任务--&
&property name="concurrent" value="false"/&
&property name="targetObject"&
&ref bean="taskJob"/&
&/property&
&property name="targetMethod"&
&value&run&/value&
&/property&
调度触发器 --&
&bean id="myTrigger"
class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"&
&property name="name" value="work_default_name"/&
&property name="group" value="work_default"/&
&property name="jobDetail"&
&ref bean="jobDetail" /&
&/property&
&property name="cronExpression"&
&value&0/5 * * * * ?&/value&
&/property&
&!-- 调度工厂 --&
&bean id="scheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"&
&property name="triggers"&
&ref bean="myTrigger"/&
&/property&
2.spring task方式的定时任务(最为简单,功能也简单)
&!-- 定时器配置
&bean id="task1" class="com.XXX.Task1"&&/bean&
&bean id="task2" class="com.XXX.Task2"&&/bean&
&task:scheduled-tasks&
&task:scheduled ref="task1" method="execute" cron="0 */1 * * * ?"/&
&task:scheduled ref="task2" method="execute" cron="0 */1 * * * ?"/&
&/task:scheduled-tasks&
&!-- 定时器配置
使用的时候,直接写一个类,一个方法就可以了,简单快捷。task1类添加方法:
public void execute(){
// TODO: 你的业务逻辑
&3.使用quartz方式,可以动态修改任务执行时间和参数的工具方法。
import java.util.L
import java.util.S
import org.quartz.CronScheduleB
import org.quartz.CronT
import org.quartz.JobB
import org.quartz.JobDataM
import org.quartz.JobD
import org.quartz.JobK
import org.quartz.S
import org.quartz.SchedulerE
import org.quartz.T
import org.quartz.TriggerB
import org.quartz.TriggerK
import org.quartz.impl.DirectSchedulerF
import org.quartz.impl.matchers.GroupM
import org.slf4j.L
import org.slf4j.LoggerF
* http://blog.csdn.net/xlxxcc/article/details/
* @ClassName: QuartzManager
* @author lishang
* @Description quartz定时任务管理增删改
* @date 日 下午1:27:47
public class QuartzManager {
protected static final Logger LOG = LoggerFactory.getLogger(QuartzManager.class);
//private static SchedulerFactory schedulerFactory = new StdSchedulerFactory();
private static DirectSchedulerFactory schedulerFactory=DirectSchedulerFactory.getInstance();
schedulerFactory.createVolatileScheduler(3);
} catch (SchedulerException e) {
LOG.info("创建DirectSchedulerFactory的Scheduler失败!",e);
* 判断一个job是否存在
* @param jobName
* @param jobGroupName
* @param triggerName
* @param triggerGroupName
public static boolean isExistJob(String jobName, String jobGroupName){
boolean exist=false;
Scheduler sched = schedulerFactory.getScheduler();
JobKey jobKey = new JobKey(jobName, jobGroupName);
exist = sched.checkExists(jobKey);
} catch (SchedulerException e) {
e.printStackTrace();
* @Description: 添加一个定时任务
* @param jobName 任务名
* @param jobGroupName
* @param triggerName 触发器名
* @param triggerGroupName 触发器组名
* @param jobClass
* @param cron
时间设置,参考quartz说明文档
@SuppressWarnings("unchecked")
public static void addJob(String jobName, String jobGroupName,
String triggerName, String triggerGroupName, Class jobClass,JobDataMap jMap, String cron) {
Scheduler sched = schedulerFactory.getScheduler();
// 任务名,任务组,任务执行类
JobDetail jobDetail= JobBuilder.newJob(jobClass).withIdentity(jobName, jobGroupName)
.usingJobData(jMap).build();
TriggerBuilder&Trigger& triggerBuilder = TriggerBuilder.newTrigger();
// 触发器名,触发器组
triggerBuilder.withIdentity(triggerName, triggerGroupName);
triggerBuilder.startNow();
// 触发器时间设定
triggerBuilder.withSchedule(CronScheduleBuilder.cronSchedule(cron));
// 创建Trigger对象
CronTrigger trigger = (CronTrigger) triggerBuilder.build();
// 调度容器设置JobDetail和Trigger
sched.scheduleJob(jobDetail, trigger);
Trigger.TriggerState triggerState = sched.getTriggerState(trigger.getKey());
LOG.info("job的触发器状态:"+triggerState.name());
System.out.println("job的触发器状态:"+triggerState.name());
if (!sched.isShutdown()) {
sched.start();
//按新的trigger重新设置job执行
sched.rescheduleJob(trigger.getKey(), trigger);
} catch (Exception e) {
LOG.error("添加一个定时任务发生异常:",e);
throw new RuntimeException(e);
* @Description: 修改一个任务的触发时间
* @param jobName
* @param jobGroupName
* @param triggerName 触发器名
* @param triggerGroupName 触发器组名
* @param cron
时间设置,参考quartz说明文档
public static void modifyJobTime(String jobName,
String jobGroupName, String triggerName, String triggerGroupName,@SuppressWarnings("rawtypes") Class jobClass,JobDataMap jMap,String cron) {
/** 方式一 :调用 rescheduleJob 开始 */
//TriggerBuilder&Trigger& triggerBuilder = TriggerBuilder.newTrigger();
// 触发器名,触发器组
//triggerBuilder.withIdentity(triggerName, triggerGroupName);
//triggerBuilder.startNow();
// 触发器时间设定
//triggerBuilder.withSchedule(CronScheduleBuilder.cronSchedule(cron));
// 创建Trigger对象
//trigger = (CronTrigger) triggerBuilder.build();
// 方式一 :修改一个任务的触发时间
//sched.rescheduleJob(triggerKey, trigger);
/** 方式一 :调用 rescheduleJob 结束 */
/** 方式二:先删除,然后在创建一个新的Job
removeJob(jobName, jobGroupName, triggerName, triggerGroupName);
addJob(jobName, jobGroupName, triggerName, triggerGroupName, jobClass, jMap, cron);
/** 方式二 :先删除,然后在创建一个新的Job */
* @Description: 移除一个任务
* @param jobName
* @param jobGroupName
* @param triggerName
* @param triggerGroupName
public static void removeJob(String jobName, String jobGroupName,
String triggerName, String triggerGroupName) {
Scheduler sched = schedulerFactory.getScheduler();
TriggerKey triggerKey = TriggerKey.triggerKey(triggerName, triggerGroupName);
sched.pauseTrigger(triggerKey);// 停止触发器
sched.unscheduleJob(triggerKey);// 移除触发器
sched.deleteJob(JobKey.jobKey(jobName, jobGroupName));// 删除任务
List&String& jobGroupNames = sched.getJobGroupNames();
LOG.info("任务组开始--&groupsNames=[");
for (String string : jobGroupNames) {
GroupMatcher&JobKey& matcher=GroupMatcher.jobGroupEquals(string);
Set&JobKey& jobKeys = sched.getJobKeys(matcher);
LOG.info(string+"下的JOB为[");
for (JobKey jobKey : jobKeys) {
LOG.info(jobKey.getName()+",");
LOG.info("]");
LOG.info("]任务组结束。");
} catch (Exception e) {
LOG.error("移除job任务发生异常:",e);
throw new RuntimeException(e);
* @Description:启动所有定时任务
public static void startJobs() {
Scheduler sched = schedulerFactory.getScheduler();
sched.start();
} catch (Exception e) {
LOG.error("启动所有定时任务发生异常:",e);
throw new RuntimeException(e);
* @Description:关闭所有定时任务
public static void shutdownJobs() {
Scheduler sched = schedulerFactory.getScheduler();
if (!sched.isShutdown()) {
sched.shutdown();
} catch (Exception e) {
LOG.error("关闭所有定时任务发生异常:",e);
throw new RuntimeException(e);
之前项目中使用的调度工厂类是:StdSchedulerFactory 然后定时任务动态修改的时候总是不稳定。后来改为上面的工厂类,问题得到了解决。
原因是其他地方有使用StdSchedulerFactory 的调度器,所有的调度任务都会在这个工厂中,不容易控制,而DirectSchedulerFactory这个工厂是每个new生成一个实例,更容易控制。
3.使用quartz方式,不整合spring后续任务(任务域) - Project
后续任务(任务域)
Project 专业版 2016
Project 2010
Project 2007
Project Professional 2013
Project Standard 2007
Project Standard 2010
Project Standard 2013
Project Standard 2016
本文是由机器翻译的,请参阅。请在
中查找本文的英文版本以便参考。
后续任务域列出后续任务任务添加到任务的任务 ID编号。任务必须开始或完成之前后续任务能否开始或完成。由特定类型的任务相关性和提前期或延隔时间情况下,每个后续任务链接到任务。
若要显示或更新某个任务的后续任务,请将“后续任务”域添加到任务工作表。每个后续任务都由其任务标识号代表。任务标识号的后面可能跟随有任务相关性和前置重叠时间(或延隔时间)。后续任务的相关性类型有 FS (“完成-开始”)、FF(“完成-完成”)、SS(“开始-开始”)和 SF(“开始-完成”)。若要输入前置重叠时间,请输入一个负数。若要输入延隔时间,请输入一个正数。
假设您想查看项目中任务的后续任务,以分析和修改日程。在“任务工作表”视图中添加“后续任务”域。在“发展评估”任务的“后续任务”域中,您看到条目“14FS+3d”,这表示任务 14 是此任务的后续任务,二者具有完成-开始相关性,延隔时间为 3 天。也就是说,任务 14 必须等到此任务完成
3 天后才能开始。您还看到“筹办客户会议”的“后续任务”域为空。您可以键入“15FS”,将此任务通过完成-开始相关性与任务 15 链接。
如果在“后续任务”域中只输入任务标识号,Microsoft Office Project 将假定:任务相关性为“完成-开始”,延隔时间为零。如果有多个后续任务,所有后续任务都将列出,并由列表分隔符(通常为逗号或分号)分隔开来。
您可以使用“编辑”菜单上的“链接任务”命令,通过完成-开始相关性和零延隔时间链接所选任务。还可以通过在“甘特图”或“网络图”视图的图表部分从一个任务拖动到另一个任务来链接任务。
如果后续任务属于另一项目,则“后续任务”域也包括除任务标识号和相关性类型之外,还包括链接项目的路径。例如:C:\My Documents\Bldg E Construction.mpp\3FF。
注意: 机器翻译免责声明:本文是由无人工介入的计算机系统翻译的。Microsoft 提供机器翻译是为了帮助非英语国家/地区用户方便阅读有关 Microsoft 产品、服务和技术的内容。由于机器翻译的原因,本文可能包含词汇、语法或文法方面的错误。任务任务任务_百度宝宝知道
任务任务任务
宝宝1岁10个月LV.1
不知道发啥,任务任务
扫码或保存
邀请好友扫一扫分享给TA或者TGBUS Corporation, All Rights Reserved本资料可以查看龙之谷主线任务、支线任务所有剧情(以后将增加所有龙之谷对白剧情)。感谢“wildgun”和“艾伦希亚”的提供支持。附注:点击左下角兔子可以立刻返回网页顶部。
<span style="color: #ff年10月17日:更新章节外传Ⅰ荒漠风暴任务。
日:更新新萝莉职业全主线任务。
日:莲花沼泽支线新增46~48级任务及50级“混沌细缝中的莲花”任务。
日:莲花沼泽支线76版50级任务“时空庭院”和个别76版本活动任务。
日:更新支线任务471条(已全)。
日:更新主线任务106条(已全)。
76版新增活动
2012年情人节活动
龙之谷学者主线任务
第1章.命运中的少女
第2章.追踪黑骑士
第3章.红眼睛的黑暗精灵
第4章.王城神圣天堂
第5章.守护者杰兰特
第6章.守护者杰兰特
龙之谷四系主线任务
第1章.命运中的少女-弓战
第1章.命运中的少女-法师
第1章.命运中的少女-牧师
第2章.追踪黑骑士
第3章.红眼睛的黑暗精灵
第4章.王城神圣天堂
第5章.守护者杰兰特
第6章.佩奥里斯塔
第7章.继承
第9章.复活
章节外传Ⅰ荒漠风暴
龙之谷支线任务
魔法山脊  LV.1~8
普雷利镇  LV.1~8
凯德拉关卡 LV.9~15
凯德拉关卡 LV.16~24
神圣天堂  LV.24~29
神圣天堂  LV.30~35
神圣天堂  LV.36~40
莲花沼泽  LV.40~50
支线称号任务
支线巢穴任务
龙之谷新闻
龙之谷截图
龙之谷视频
龙之谷职业
龙之谷补丁
龙之谷交流
友情链接:

我要回帖

更多关于 罪恶都市任务 的文章

 

随机推荐