private boolean doesTaskExist() { return taskScheduler.listsTasks().stream() .anyMatch(info -> CleanupTaskDescriptor.TYPE_ID.equals(info.getConfiguration().getTypeId())); } }
private void removeOldRebuildTasks() { taskScheduler.listsTasks().stream() .filter(task -> RebuildAssetUploadMetadataTaskDescriptor.TYPE_ID.equals(task.getConfiguration().getTypeId())) .forEach(TaskInfo::remove); } }
@Override public boolean isRebuilding() { String repositoryName = getRepository().getName(); return taskScheduler.listsTasks().stream() .filter(task -> RebuildBrowseNodesTaskDescriptor.TYPE_ID.equals(task.getTypeId())) .filter(task -> TaskInfo.State.RUNNING.equals(task.getCurrentState().getState())) .anyMatch(task -> { String taskRepositoryName = task.getConfiguration().getString(REPOSITORY_NAME_FIELD_ID); return taskRepositoryName.equals(repositoryName) || taskRepositoryName.equals(RepositorySelector.ALL); }); } }
@Override protected void doStart() throws Exception { if (!taskScheduler.listsTasks().stream().anyMatch((info) -> TYPE_ID.equals(info.getConfiguration().getTypeId()))) { TaskConfiguration configuration = taskScheduler.createTaskConfigurationInstance(TYPE_ID); Schedule schedule = taskScheduler.getScheduleFactory().cron(new Date(), storageCleanupCron); taskScheduler.scheduleTask(configuration, schedule); } } }
/** * Returns whether or not a reindexing task exists for a particular npm repository. */ private boolean hasRunningTask(final Repository repository) { for (TaskInfo taskInfo : taskScheduler.listsTasks()) { TaskConfiguration taskConfiguration = taskInfo.getConfiguration(); String typeId = taskConfiguration.getTypeId(); String repositoryName = taskConfiguration.getString(REPOSITORY_NAME_FIELD_ID); if (ReindexNpmRepositoryTaskDescriptor.TYPE_ID.equals(typeId) && repository.getName().equals(repositoryName) && TaskInfo.State.RUNNING.equals(taskInfo.getCurrentState().getState())) { return true; } } return false; } }
private boolean launchExistingTask(final String repositoryName) throws TaskRemovedException { for (TaskInfo taskInfo : taskScheduler.listsTasks()) { if (isRebuildTask(repositoryName, taskInfo)) { if (!TaskInfo.State.RUNNING.equals(taskInfo.getCurrentState().getState())) { taskInfo.runNow(); } return true; } } return false; }