IDEMPIERE-3823 Schedule without Schedule Type is running wild / implemented to run once on reboot

This commit is contained in:
Carlos Ruiz 2018-11-19 10:59:58 -02:00
parent 28171cda7a
commit 620b9715bb
2 changed files with 11 additions and 2 deletions

View File

@ -297,10 +297,17 @@ public abstract class AdempiereServer implements Runnable
p_model.getFrequency(), p_model.getCronPattern()); p_model.getFrequency(), p_model.getCronPattern());
m_sleepMS = m_nextWork - now; m_sleepMS = m_nextWork - now;
if (m_nextWork == 0) {
m_sleepMS = 0;
}
if (log.isLoggable(Level.INFO)) log.info(" Next run: " + new Timestamp(m_nextWork) + " sleep " + m_sleepMS); if (log.isLoggable(Level.INFO)) log.info(" Next run: " + new Timestamp(m_nextWork) + " sleep " + m_sleepMS);
// //
p_model.setDateLastRun(lastRun); p_model.setDateLastRun(lastRun);
p_model.setDateNextRun(new Timestamp(m_nextWork)); if (m_nextWork == 0) {
p_model.setDateNextRun(null);
} else {
p_model.setDateNextRun(new Timestamp(m_nextWork));
}
p_model.saveEx(); p_model.saveEx();
} // run } // run

View File

@ -577,7 +577,9 @@ public class AdempiereServerMgr implements ServiceTrackerCustomizer<IServerFacto
public void run() { public void run() {
if (server.isSleeping()) { if (server.isSleeping()) {
server.run(); server.run();
scheduleFuture = Adempiere.getThreadPoolExecutor().schedule(this, server.getSleepMS(), TimeUnit.MILLISECONDS); if (server.getSleepMS() != 0) {
scheduleFuture = Adempiere.getThreadPoolExecutor().schedule(this, server.getSleepMS(), TimeUnit.MILLISECONDS);
}
} else { } else {
//server busy, try again after one minute //server busy, try again after one minute
scheduleFuture = Adempiere.getThreadPoolExecutor().schedule(this, 60 * 1000, TimeUnit.MILLISECONDS); scheduleFuture = Adempiere.getThreadPoolExecutor().schedule(this, 60 * 1000, TimeUnit.MILLISECONDS);