public void schedule(User user, int dashId, Report report, long delayInSeconds) { schedule( new PeriodicReportTask(user, dashId, report, this), delayInSeconds, TimeUnit.SECONDS ); }
BlockingIOStat(BlockingIOProcessor blockingIOProcessor, ReportScheduler reportScheduler) { this(blockingIOProcessor.messagingExecutor.getQueue().size(), blockingIOProcessor.messagingExecutor.getCompletedTaskCount(), blockingIOProcessor.historyExecutor.getQueue().size(), blockingIOProcessor.historyExecutor.getCompletedTaskCount(), blockingIOProcessor.dbExecutor.getQueue().size(), blockingIOProcessor.dbExecutor.getCompletedTaskCount(), blockingIOProcessor.dbGetServerExecutor.getQueue().size(), blockingIOProcessor.dbGetServerExecutor.getCompletedTaskCount(), reportScheduler.getQueue().size(), reportScheduler.getCompletedTaskCount(), reportScheduler.map.size() ); }
public ReportScheduler(int corePoolSize, String downloadUrl, MailWrapper mailWrapper, ReportingDiskDao reportingDao, Map<UserKey, User> users) { super(corePoolSize, BlynkTPFactory.build("report")); setRemoveOnCancelPolicy(true); setExecuteExistingDelayedTasksAfterShutdownPolicy(false); this.map = new ConcurrentHashMap<>(); this.downloadUrl = downloadUrl; this.mailWrapper = mailWrapper; this.reportingDao = reportingDao; init(users); }
boolean isRemoved = reportScheduler.cancelStoredFuture(user, dashId, report.id); log.debug("Deleting reportId {} in scheduler for {}. Is removed: {}?.", report.id, user.email, isRemoved); reportScheduler.schedule(user, dashId, report, initialDelaySeconds);
private static void deleteDash(Holder holder, MobileStateHolder state, int dashId) { User user = state.user; int index = user.profile.getDashIndexOrThrow(dashId); log.debug("Deleting dashboard {}.", dashId); DashBoard dash = user.profile.dashBoards[index]; user.addEnergy(dash.energySum()); holder.timerWorker.deleteTimers(state.userKey, dash); holder.tokenManager.deleteDash(dash); holder.sessionDao.closeHardwareChannelByDashId(state.userKey, dashId); holder.reportScheduler.cancelStoredFuture(user, dashId); holder.blockingIOProcessor.executeHistory(() -> { for (Device device : dash.devices) { try { holder.reportingDiskDao.delete(state.user, dashId, device.id); } catch (Exception e) { log.warn("Error removing device data. Reason : {}.", e.getMessage()); } } }); user.profile.dashBoards = ArrayUtil.remove(user.profile.dashBoards, index, DashBoard.class); }
props.getBoolProperty("force.port.80.for.csv") ); this.reportScheduler = new ReportScheduler(1, downloadUrl, mailWrapper, reportingDiskDao, userDao.users);
public void close() { sessionDao.close(); transportTypeHolder.close(); asyncHttpClient.close(); reportingDiskDao.close(); System.out.println("Stopping BlockingIOProcessor..."); blockingIOProcessor.close(); reportScheduler.shutdown(); System.out.println("Stopping DBManager..."); dbManager.close(); reportingDBManager.close(); tokensPool.close(); } }
boolean isRemoved = reportScheduler.cancelStoredFuture(user, dashId, reportId); log.debug("Deleting reportId {} in scheduler for {}. Is removed: {}?.", reportToDel.id, user.email, isRemoved);
props.getBoolProperty("force.port.80.for.csv") ); this.reportScheduler = new ReportScheduler(1, downloadUrl, mailWrapper, reportingDiskDao, userDao.users);
private void reschedule(long reportFinishedAt) { long initialDelaySeconds = report.calculateDelayInSeconds(); report.nextReportAt = reportFinishedAt + initialDelaySeconds * 1000; //rescheduling report log.info("Rescheduling report for {} with delay {}.", key.user.email, initialDelaySeconds); reportScheduler.schedule(this, initialDelaySeconds, TimeUnit.SECONDS); } }
report.nextReportAt = now + initialDelaySeconds * 1000; schedule(user, dashBoard.id, report, initialDelaySeconds); counter++; } catch (IllegalCommandBodyException e) {
reportScheduler.schedule(new BaseReportTask(user, dashId, report, reportScheduler.mailWrapper, reportScheduler.reportingDao, reportScheduler.downloadUrl) {
reportScheduler.schedule(user, dashId, report, initialDelaySeconds);