@SuppressWarnings("deprecation") public String migrate(final int batchSize) { final String MIGRATION_WORK_ID = "AuditMigration"; WorkManager wm = Framework.getService(WorkManager.class); State migrationState = wm.getWorkState(MIGRATION_WORK_ID); if (migrationState != null) { return "Migration already scheduled : " + migrationState.toString(); } Work migrationWork = new ESAuditMigrationWork(MIGRATION_WORK_ID, batchSize); wm.schedule(migrationWork); return "Migration work started : " + MIGRATION_WORK_ID; }
@Override public ConversionStatus getConversionStatus(String id) { WorkManager workManager = Framework.getService(WorkManager.class); Work.State workState = workManager.getWorkState(id); if (workState == null) { String entryKey = TransientStoreWork.computeEntryKey(id); if (TransientStoreWork.containsBlobHolder(entryKey)) { return new ConversionStatus(id, ConversionStatus.Status.COMPLETED); } return null; } return new ConversionStatus(id, ConversionStatus.Status.valueOf(workState.name())); }
@Override public VideoConversionStatus getProgressStatus(String repositoryName, String docId, String conversionName) { WorkManager workManager = Framework.getService(WorkManager.class); Work work = new VideoConversionWork(repositoryName, docId, conversionName); State state = workManager.getWorkState(work.getId()); if (state == null) { // DONE return null; } else if (state == State.SCHEDULED) { String queueId = workManager.getCategoryQueueId(VideoConversionWork.CATEGORY_VIDEO_CONVERSION); long queueSize = workManager.getQueueSize(queueId, State.SCHEDULED); return new VideoConversionStatus(VideoConversionStatus.STATUS_CONVERSION_QUEUED, 0L, queueSize); } else { // RUNNING return new VideoConversionStatus(VideoConversionStatus.STATUS_CONVERSION_PENDING, 0L, 0L); } }