package foundation.schedule; import foundation.data.entity.Entity; import foundation.data.entity.EntitySet; import foundation.data.object.DataObject; import foundation.server.Initializer; public class ScheduleLoader extends Initializer { @Override public void startUp() throws Exception { load(); } public static void load() throws Exception { ScheduleBucket.clear(); ScheduleBucket bucket = ScheduleBucket.getInstance(); //1. 加载 schedule batch DataObject dataObject = DataObject.getInstance("sys_schedule"); EntitySet entitySet = dataObject.getTableEntitySet(); for (Entity entity: entitySet) { ScheduleBatch batch = new ScheduleBatch(); batch.load(entity); if (!batch.isActive()) { continue; } bucket.loadOne(batch.getId(), batch); } //2. 加载 schedule job dataObject = DataObject.getInstance("sys_schedule_action"); entitySet = dataObject.getTableEntitySet(); for (Entity entity: entitySet) { ScheduleJob job = new ScheduleJob(); job.load(entity); if (!job.isActive()) { continue; } bucket.loadOneJob(job.getId(), job); } //3. 添加到 quartz 的scheduler中 ScheduleCenter center = ScheduleCenter.getInstance(); center.loadJobs(bucket); center.startup(); } @Override public void shutDown() throws Exception { } }