@Override public void run() { try { long finishedAt = generateReport(); report.lastReportAt = finishedAt; reschedule(finishedAt); log.debug("After rescheduling: {}", report); } catch (IllegalCommandBodyException ice) { log.info("Seems like report is expired for {}.", key.user.email); report.lastRunResult = ReportResult.EXPIRED; } catch (Exception e) { log.debug("Error generating report {} for {}.", report, key.user.email, e); } }
public void schedule(User user, int dashId, Report report, long delayInSeconds) { schedule( new PeriodicReportTask(user, dashId, report, this), delayInSeconds, TimeUnit.SECONDS ); }