diff --git a/org.adempiere.server/src/main/server/org/compiere/server/AdempiereServer.java b/org.adempiere.server/src/main/server/org/compiere/server/AdempiereServer.java index 5f0c5e453a..82b5d1415b 100644 --- a/org.adempiere.server/src/main/server/org/compiere/server/AdempiereServer.java +++ b/org.adempiere.server/src/main/server/org/compiere/server/AdempiereServer.java @@ -103,6 +103,28 @@ public abstract class AdempiereServer implements Runnable return Env.getCtx(); } // getCtx + public void recalculateSleepMS() + { + if (p_model instanceof PO) + { + PO po = (PO) p_model; + po.load(null); + } + m_sleepMS = 0; + m_nextWork = 0; + + Timestamp lastRun = new Timestamp(System.currentTimeMillis()); + m_nextWork = MSchedule.getNextRunMS(lastRun.getTime(), + p_model.getScheduleType(), p_model.getFrequencyType(), + p_model.getFrequency(), p_model.getCronPattern()); + + m_sleepMS = m_nextWork - lastRun.getTime(); + if (log.isLoggable(Level.INFO)) log.info(" Next run: " + new Timestamp(m_nextWork) + " sleep " + m_sleepMS); + // + p_model.setDateNextRun(new Timestamp(m_nextWork)); + p_model.saveEx(); + } + /** * @return Returns the sleepMS. */ diff --git a/org.adempiere.server/src/main/server/org/compiere/server/AdempiereServerMgr.java b/org.adempiere.server/src/main/server/org/compiere/server/AdempiereServerMgr.java index 97ec29cd94..50930cecf8 100644 --- a/org.adempiere.server/src/main/server/org/compiere/server/AdempiereServerMgr.java +++ b/org.adempiere.server/src/main/server/org/compiere/server/AdempiereServerMgr.java @@ -237,6 +237,7 @@ public class AdempiereServerMgr implements ServiceTrackerCustomizer