MainBucketReaperJob.java (eucalyptus-4.4.1) | : | MainBucketReaperJob.java (eucalyptus-4.4.2) | ||
---|---|---|---|---|
skipping to change at line 65 | skipping to change at line 65 | |||
* IT MAY INFORM DR. RICH WOLSKI AT THE UNIVERSITY OF CALIFORNIA, | * IT MAY INFORM DR. RICH WOLSKI AT THE UNIVERSITY OF CALIFORNIA, | |||
* SANTA BARBARA WHO WILL THEN ASCERTAIN THE MOST APPROPRIATE REMEDY, | * SANTA BARBARA WHO WILL THEN ASCERTAIN THE MOST APPROPRIATE REMEDY, | |||
* WHICH IN THE REGENTS' DISCRETION MAY INCLUDE, WITHOUT LIMITATION, | * WHICH IN THE REGENTS' DISCRETION MAY INCLUDE, WITHOUT LIMITATION, | |||
* REPLACEMENT OF THE CODE SO IDENTIFIED, LICENSING OF THE CODE SO | * REPLACEMENT OF THE CODE SO IDENTIFIED, LICENSING OF THE CODE SO | |||
* IDENTIFIED, OR WITHDRAWAL OF THE CODE CAPABILITY TO THE EXTENT | * IDENTIFIED, OR WITHDRAWAL OF THE CODE CAPABILITY TO THE EXTENT | |||
* NEEDED TO COMPLY WITH ANY SUCH LICENSES OR RIGHTS. | * NEEDED TO COMPLY WITH ANY SUCH LICENSES OR RIGHTS. | |||
************************************************************************/ | ************************************************************************/ | |||
package com.eucalyptus.objectstorage.jobs; | package com.eucalyptus.objectstorage.jobs; | |||
import java.util.Date; | ||||
import org.apache.log4j.Logger; | import org.apache.log4j.Logger; | |||
import org.quartz.DisallowConcurrentExecution; | ||||
import org.quartz.InterruptableJob; | import org.quartz.InterruptableJob; | |||
import org.quartz.JobExecutionContext; | import org.quartz.JobExecutionContext; | |||
import org.quartz.JobExecutionException; | import org.quartz.JobExecutionException; | |||
import org.quartz.UnableToInterruptJobException; | import org.quartz.UnableToInterruptJobException; | |||
import com.eucalyptus.bootstrap.Databases; | import com.eucalyptus.bootstrap.Databases; | |||
import com.eucalyptus.objectstorage.asynctask.BucketReaperTask; | import com.eucalyptus.objectstorage.asynctask.BucketReaperTask; | |||
import javaslang.control.Option; | ||||
@DisallowConcurrentExecution | ||||
public class MainBucketReaperJob implements InterruptableJob { | public class MainBucketReaperJob implements InterruptableJob { | |||
private static Logger LOG = Logger.getLogger(MainBucketReaperJob.class); | private static final Logger LOG = Logger.getLogger(MainBucketReaperJob.class); | |||
static final BucketReaperTask reaper = new BucketReaperTask(); | private static final boolean ENABLE_TIMEOUT = | |||
Boolean.parseBoolean( System.getProperty( "com.eucalyptus.objectstorage.bu | ||||
cketReaperTimeout", "true" ) ); | ||||
private static final BucketReaperTask reaper = new BucketReaperTask(); | ||||
@Override | @Override | |||
public void execute(JobExecutionContext jobExecutionContext) throws JobExecuti onException { | public void execute(JobExecutionContext jobExecutionContext) throws JobExecuti onException { | |||
if ( Databases.isVolatile( ) ) { | if ( Databases.isVolatile( ) ) { | |||
LOG.warn( "Skipping job due to database not available" ); | LOG.warn( "Skipping job due to database not available" ); | |||
return; | return; | |||
} | } | |||
reaper.resume(); | reaper.resume(); | |||
reaper.run(); | reaper.run( Option.of( jobExecutionContext.getNextFireTime( ) ) | |||
.map( Date::getTime ) | ||||
.filter( __ -> ENABLE_TIMEOUT ) | ||||
.getOrElse( Long.MAX_VALUE ) ); | ||||
} | } | |||
@Override | @Override | |||
public void interrupt() throws UnableToInterruptJobException { | public void interrupt() throws UnableToInterruptJobException { | |||
reaper.interrupt(); | reaper.interrupt(); | |||
} | } | |||
} | } | |||
End of changes. 7 change blocks. | ||||
3 lines changed or deleted | 14 lines changed or added |