code: @Override
      public void run() {
          try {
              ScheduledEventQueue queue = ScheduledEventQueue.getSingleton();
              int batch_size = PropertyManager.getIntegerProperty(PropertyNames.SCHEDULED_EVENTS_BATCH_SIZE, 1000);
              int count = 0;
              Date now = new Date(DatabaseAccess.getCurrentTime());
              logger.log(LogLevel.TRACE, "Processing scheduled events at: " + now);
              ScheduledEvent event = queue.getNextReadyEvent(now);
              while (event!=null && count < batch_size) {
                  count++;
                  queue.processEvent(event, now);
                  event = queue.getNextReadyEvent(now);
              }
          }
          catch (Throwable t) {
              logger.severeException(t.getMessage(), t);
          }
      }
docs: Invoked periodically by the timer thread