开发使用暂时记录下,代码片段中注释部分为quartz-2.2.0的实现方式:
public class ParkLogInQuartz {
public static Scheduler scheduler =null;
//三秒执行一次登陆,直到登陆成功
public static void startQuarz() {
try {
scheduler = StdSchedulerFactory.getDefaultScheduler();
JobDetail jobDetail = new JobDetail("sync","group_1",JSLoginTask.class);
SimpleTrigger trigger = new SimpleTrigger("sync", "myGroup", 1000, 3000);
scheduler.scheduleJob(jobDetail, trigger);
scheduler.start();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
/*
try {
scheduler= StdSchedulerFactory.getDefaultScheduler();//TnarSchedulerFactory.getScheduler();
JobDetail jobDetail= JobBuilder.newJob(JSLoginTask.class).withIdentity("sync","group_1").build();
CronScheduleBuilder cronScheduleBuilder=CronScheduleBuilder.cronSchedule("0/3 * * * * ?");
Trigger trigger=TriggerBuilder.newTrigger()
.withIdentity("sync", "myGroup")
.withSchedule(cronScheduleBuilder)
.build();
scheduler.scheduleJob(jobDetail, trigger);
scheduler.start();
} catch (SchedulerException e) {
e.printStackTrace();
}
*/}
public static void stopQuartz()
{
try {
scheduler.shutdown(true);
} catch (Exception e) {
e.printStackTrace();
}
}
}
实现类:
public class JSLoginTask implements Job {
IThirdParkService parkService = new ThirdParkServiceImpl();
private static final Logger logger = Logger.getLogger(JSLoginTask.class);
@Override
public void execute(JobExecutionContext arg0) throws JobExecutionException {
String json = parkService.JS_Login(ParkingCache.js_customerId, ParkingCache.js_userName, ParkingCache.js_password);
logger.info("登陆返回信息:"+json);
JSONObject object = JSONObject.fromObject(json);
int resultCode = object.get("resultCode")==null?-1:object.getInt("resultCode");
if (resultCode==0) {
String token = object.get("token")==null?"":object.getString("token");
ParkingCache.js_token = token;
if (StringUtil.isNull(token)) {
logger.info("登陆失败token:"+token);
}else {
logger.info("登陆成功token:"+token);
ParkLogInQuartz.stopQuartz();
}
}else {
logger.info("登陆失败");
}
}
}