diff --git a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/oneTimeService/OneTimeServiceFactory.java b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/oneTimeService/OneTimeServiceFactory.java index bea5241..2a40de1 100644 --- a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/oneTimeService/OneTimeServiceFactory.java +++ b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/oneTimeService/OneTimeServiceFactory.java @@ -1,6 +1,7 @@ package cc.smtweb.system.bpm.web.sys.oneTimeService; import cc.smtweb.framework.core.common.SwConsts; +import cc.smtweb.framework.core.db.DbEngine; import cc.smtweb.framework.core.exception.BizException; import cc.smtweb.framework.core.exception.SwException; import cc.smtweb.framework.core.session.UserSession; @@ -36,7 +37,7 @@ public class OneTimeServiceFactory { private Map> mapType = new HashMap<>(); - private OnetimeTaskHelper tasksDao = new OnetimeTaskHelper(); + private OnetimeTaskHelper taskHelper = null; //服务器编号 private int runServer = SwConsts.SysParam.machineId; @@ -60,7 +61,14 @@ public class OneTimeServiceFactory { } public OnetimeTaskHelper getTasksHelper() { - return tasksDao; + if (taskHelper == null) { + synchronized (OnetimeTaskHelper.class) { + if (taskHelper == null) { + taskHelper = new OnetimeTaskHelper(SwConsts.SysParam.machineId, DbEngine.getInstance().findDao(OnetimeTask.class)); + } + } + } + return taskHelper; } /** @@ -74,7 +82,7 @@ public class OneTimeServiceFactory { * @throws Exception */ public void push(String type, String key, String name, long bizId, String inparams, UserSession us) { - if (tasksDao.isExistByKey(type, key)) { + if (taskHelper.isExistByKey(type, key)) { throw new BizException("该任务已经存在,不能新增!"); } OnetimeTask task = new OnetimeTask(); @@ -106,7 +114,7 @@ public class OneTimeServiceFactory { * @throws Exception */ public void restart(String type, String key) { - OnetimeTask task = tasksDao.findOneByTk(type, key); + OnetimeTask task = taskHelper.findOneByTk(type, key); if (task != null && !task.isNew()) { schedule.schedule(new OneTimeSysService(task), 1L, TimeUnit.MILLISECONDS); } @@ -117,7 +125,7 @@ public class OneTimeServiceFactory { if (schedule != null) { stop(); } - List listService = tasksDao.findWaiting(); + List listService = taskHelper.findWaiting(); schedule = Executors.newScheduledThreadPool(max_thread_size); for (OnetimeTask task : listService) { schedule.schedule(new OneTimeSysService(task), 10L, TimeUnit.SECONDS); diff --git a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/oneTimeService/OnetimeTaskHelper.java b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/oneTimeService/OnetimeTaskHelper.java index 156c352..1f9f010 100644 --- a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/oneTimeService/OnetimeTaskHelper.java +++ b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/oneTimeService/OnetimeTaskHelper.java @@ -16,19 +16,24 @@ import java.util.List; public final class OnetimeTaskHelper { //服务器编号 private int runServer = SwConsts.SysParam.machineId; - private EntityDao dao = null;//DbEngine.getInstance().findDao(OnetimeTasks.class); + private EntityDao dao; + + public OnetimeTaskHelper(int runServer, EntityDao dao) { + this.runServer = runServer; + this.dao = dao; + } //获取所有等待中的任务,服务启动时执行一次 public List findWaiting() { - return dao.queryWhere(" run_server=? and statu < ?", runServer, OneTimeStatu.FAILED.value); + return dao.queryWhere(" sot_run_server=? and sot_statu < ?", runServer, OneTimeStatu.FAILED.value); } public OnetimeTask findOneByTk(String type, String key) { - return dao.queryEntityWhere(" task_type=? and task_key=?", type, key); + return dao.queryEntityWhere(" sot_type=? and sot_code=?", type, key); } public boolean isExistByKey(String type, String key) { - return DbEngine.getInstance().isExists("select task_id from " + EntityHelper.getSchemaTableName(OnetimeTask.ENTITY_NAME) + " where task_type=? and task_key=?", type, key); + return DbEngine.getInstance().isExists("select sot_id from " + EntityHelper.getSchemaTableName(OnetimeTask.ENTITY_NAME) + " where sot_type=? and sot_code=?", type, key); } public void updateTask(OnetimeTask task) { @@ -51,13 +56,13 @@ public final class OnetimeTaskHelper { @Override public void work() { task.setRunServer(runServer); - dao.updateEntity(task, "begin_time,end_time,statu,info,process,run_server"); + dao.updateEntity(task, "sot_begin_time,sot_end_time,sot_statu,sot_info,sot_process,sot_run_server"); } }); } } public void updatProcess(OnetimeTask task) { - dao.updateEntity(task, "process"); + dao.updateEntity(task, "sot_process"); } } \ No newline at end of file