enable/disable job schedule

This commit is contained in:
Shinsuke Sugaya 2016-01-15 22:53:47 +09:00
parent c7747c75f0
commit 76f8a38372
3 changed files with 26 additions and 17 deletions

View file

@ -43,7 +43,7 @@
<dbflute.version>1.1.1</dbflute.version>
<lastaflute.version>0.7.9-RC4</lastaflute.version>
<lasta.taglib.version>0.6.8</lasta.taglib.version>
<lasta.job.version>0.2.0-RCC</lasta.job.version>
<lasta.job.version>0.2.0-RCD</lasta.job.version>
<servlet.version>3.1.0</servlet.version>
<jsp.version>2.3.1</jsp.version>
<mailflute.version>0.4.8</mailflute.version>

View file

@ -76,8 +76,6 @@ public class Constants extends CoreLibConstants {
public static final String DEFAULT_HOURLY_CRON_EXPRESSION = "0 * * * *";
public static final String UNSCHEDULE_CRON_EXPRESSION = "0 0 1 1 sun";
public static final int DEFAULT_INTERVAL_TIME_FOR_FS = 1000;
public static final int DEFAULT_INTERVAL_TIME_FOR_WEB = 30000;

View file

@ -143,25 +143,38 @@ public class ScheduledJobService implements Serializable {
return;
}
final String cronExpression;
if (StringUtil.isNotBlank(scheduledJob.getCronExpression())) {
logger.info("Starting Job " + id + ":" + scheduledJob.getName());
cronExpression = scheduledJob.getCronExpression();
} else {
logger.info("Inactive Job " + id + ":" + scheduledJob.getName());
cronExpression = Constants.UNSCHEDULE_CRON_EXPRESSION;
}
final CronOpCall opLambda = option -> option.uniqueBy(id).changeNoticeLogToDebug().params(() -> {
Map<String, Object> params = new HashMap<>();
params.put(Constants.SCHEDULED_JOB, scheduledJob);
return params;
});
findJobByUniqueOf(LaJobUnique.of(id)).ifPresent(job -> {
job.reschedule(cronExpression, opLambda);
if (!job.isUnscheduled()) {
if (StringUtil.isNotBlank(scheduledJob.getCronExpression())) {
logger.info("Starting Job " + id + ":" + scheduledJob.getName());
final String cronExpression = scheduledJob.getCronExpression();
job.reschedule(cronExpression, opLambda);
} else {
logger.info("Inactive Job " + id + ":" + scheduledJob.getName());
job.becomeNonCron();
}
} else if (StringUtil.isNotBlank(scheduledJob.getCronExpression())) {
logger.info("Starting Job " + id + ":" + scheduledJob.getName());
String cronExpression = scheduledJob.getCronExpression();
job.reschedule(cronExpression, opLambda);
}
}).orElse(
() -> {
cron.register(cronExpression, fessConfig.getSchedulerJobClassAsClass(),
fessConfig.getSchedulerConcurrentExecModeAsEnum(), opLambda);
if (StringUtil.isNotBlank(scheduledJob.getCronExpression())) {
logger.info("Starting Job " + id + ":" + scheduledJob.getName());
final String cronExpression = scheduledJob.getCronExpression();
cron.register(cronExpression, fessConfig.getSchedulerJobClassAsClass(),
fessConfig.getSchedulerConcurrentExecModeAsEnum(), opLambda);
} else {
logger.info("Inactive Job " + id + ":" + scheduledJob.getName());
cron.registerNonCron(fessConfig.getSchedulerJobClassAsClass(), fessConfig.getSchedulerConcurrentExecModeAsEnum(),
opLambda);
}
});
}
@ -188,9 +201,7 @@ public class ScheduledJobService implements Serializable {
}
protected boolean isTarget(final String target) {
if (StringUtil.isBlank(target))
{
if (StringUtil.isBlank(target)) {
return true;
}