package org.openslx.imagemaster.serverconnection; import java.io.IOException; import java.util.Iterator; import java.util.LinkedList; import java.util.List; import java.util.Timer; import java.util.TimerTask; import org.openslx.imagemaster.crcchecker.CRCChecker; /** * Class to schedule crc checks. */ public class CRCScheduler extends TimerTask { @Override public void run() { List list = ImageProcessor.getImagesToCheck(); Iterator iter = list.iterator(); while ( iter.hasNext() ) { UploadingImageInfos image = iter.next(); List blocks = image.getNotCheckedBlocks(); List finishedBlocks = new LinkedList<>(); try { finishedBlocks = CRCChecker.checkCRC( image.getFilename(), image.getCrcFilename(), blocks ); } catch ( IOException e ) { // TODO: Could not read crc file: tell this to client } image.removeBlocks( finishedBlocks ); } } public static void startScheduling() { Timer timer = new Timer( "CRCScheduler" ); // start now and fire every 60 s timer.schedule( new CRCScheduler(), 0, 60000 ); } }