要求:
- 每天18:30,22:00 分别统计一次当天未登录系统人数
环境及相关包
- JDK 6
- quartz-2.2.2.jar
启动web时,加载定时触发器
import java.util.Date;
import org.quartz.CronScheduleBuilder;
import org.quartz.CronTrigger;
import org.quartz.DateBuilder;
import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerFactory;
import org.quartz.SimpleTrigger;
import org.quartz.TriggerBuilder;
import org.quartz.impl.StdSchedulerFactory;
import com.fs.job.DoCountLoginusersJob;
import com.fs.task.SystemLoadException;
import com.fs.task.SystemLoadImp;
public class LoadUserLoginCount extends SystemLoadImp{
@Override
public boolean load() throws SystemLoadException {
//*TODO Auto-generated method stub
Date startTime = DateBuilder.nextGivenSecondDate(null, 15);
String job_name ="countloginusers";
try {
SchedulerFactory factory = new StdSchedulerFactory();
Scheduler sched = factory.getScheduler();
//*任务1,18点30分统计一次登录人数
JobDetail job = JobBuilder.newJob(DoCountLoginusersJob.class)
.withIdentity(job_name, "group1830")
.build();
CronTrigger trigger = (CronTrigger)TriggerBuilder.newTrigger()
.withIdentity("trigger1830", "group1830")
.withSchedule(CronScheduleBuilder.cronSchedule("0 30 18 * * ?"))
.build();
sched.scheduleJob(job, trigger);
//*任务2,22点00分统计一次登录人数
JobDetail job2 = JobBuilder.newJob(DoCountLoginusersJob.class)
.withIdentity(job_name,"goup2200")
.build();
CronTrigger trigger2 = (CronTrigger)TriggerBuilder.newTrigger()
.withIdentity("trigger2200", "group2200")
.withSchedule(CronScheduleBuilder.cronSchedule("0 0 22 * * ?"))
.build();
sched.scheduleJob(job2,trigger2);
sched.start();
} catch (Exception e) {
e.printStackTrace();
}
return true;
}
}
统计登录人数
@Select({
"SELECT COUNT(*) ",
"FROM `system_user`",
"WHERE ",
"TO_DAYS(fieldt) = TO_DAYS(NOW())"
})
/***
* 获取截止目前登陆人数
* @return
*/
int countUserLogin();