Exemplo n.º 1
0
  /**
   * this function is called, when a new thread starts if this thread is the thread of getInstance,
   * then this is the shutdown hook and we save all data and disconnect all clients. after this
   * thread ends, the server will completely exit if this is not the thread of getInstance, then
   * this is a countdown thread. we start the countdown, and when we finished it, and it was not
   * aborted, we tell the shutdown-hook why we call exit, and then call exit when the exit status of
   * the server is 1, startServer.sh / startServer.bat will restart the server.
   */
  @Override
  public void run() {
    try {
      NetConnector.getInstance().shutdown();
    } catch (Throwable t) {
      log.error("Can't shutdown NetConnector", t);
    }
    /* Shuting down DB connections */
    try {
      DatabaseFactory.shutdown();
    } catch (Throwable t) {
      log.error("Can't shutdown DatabaseFactory", t);
    }

    // shutdown cron service prior to threadpool shutdown
    CronService.getInstance().shutdown();

    /* Shuting down threadpools */
    try {
      ThreadPoolManager.getInstance().shutdown();
    } catch (Throwable t) {
      log.error("Can't shutdown ThreadPoolManager", t);
    }

    // Do system exit
    if (restartOnly) {
      Runtime.getRuntime().halt(ExitCode.CODE_RESTART);
    } else {
      Runtime.getRuntime().halt(ExitCode.CODE_NORMAL);
    }
  }
Exemplo n.º 2
0
  public static void ScheduleCron() {
    CronService.getInstance()
        .schedule(
            new Runnable() {

              @Override
              public void run() {
                startEvent(); // To change body of generated methods, choose Tools | Templates.
              }
            },
            PIG_EVENT_SCHEDULE);
    log.info("Pig Event start to:" + EventsConfig.PIG_EVENT_SCHEDULE + " duration 30 min");
  }
 public void start() {
   String[] times = AutoGroupConfig.IRONWALL_TIMES.split("\\|");
   for (String cron : times) {
     CronService.getInstance()
         .schedule(
             new Runnable() {
               @Override
               public void run() {
                 startIronWallRegistration();
               }
             },
             cron);
     log.info(
         "Scheduled Iron Wall WarFront based on cron expression: "
             + cron
             + " Duration: "
             + AutoGroupConfig.IRONWALL_TIMER
             + " in minutes");
   }
 }