Class DefaultSchedulerService
java.lang.Object
org.springframework.cloud.dataflow.server.service.impl.DefaultSchedulerService
- All Implemented Interfaces:
SchedulerService
Default implementation of the
SchedulerService
interface. Provide service methods
for Scheduling tasks.- Author:
- Glenn Renfro, Chris Schaefer, Ilayaperumal Gopinathan
-
Constructor Summary
ConstructorDescriptionDefaultSchedulerService
(CommonApplicationProperties commonApplicationProperties, List<TaskPlatform> taskPlatforms, TaskDefinitionRepository taskDefinitionRepository, AppRegistryService registry, ResourceLoader resourceLoader, TaskConfigurationProperties taskConfigurationProperties, org.springframework.boot.autoconfigure.jdbc.DataSourceProperties dataSourceProperties, String dataflowServerUri, ApplicationConfigurationMetadataResolver metaDataResolver, SchedulerServiceProperties schedulerServiceProperties, org.springframework.cloud.dataflow.audit.service.AuditRecordService auditRecordService, TaskExecutionInfoService taskExecutionInfoService, PropertyResolver propertyResolver, ComposedTaskRunnerConfigurationProperties composedTaskRunnerConfigurationProperties) Constructor for DefaultSchedulerService -
Method Summary
Modifier and TypeMethodDescriptionorg.springframework.cloud.deployer.spi.scheduler.ScheduleInfo
getSchedule
(String scheduleName) Retrieves theScheduleInfo
for the specified ScheduleName from the default platform.org.springframework.cloud.deployer.spi.scheduler.ScheduleInfo
getSchedule
(String scheduleName, String platformName) Retrieves theScheduleInfo
for the specified ScheduleName.protected Resource
getTaskResource
(String taskDefinitionName, String version) List<org.springframework.cloud.deployer.spi.scheduler.ScheduleInfo>
list()
List all of the schedules registered with the default platform up to the established maximum as specifiedSchedulerServiceProperties.maxSchedulesReturned
.List<org.springframework.cloud.deployer.spi.scheduler.ScheduleInfo>
List all of the Schedules associated with the provided TaskDefinition for the default platform up to the established maximum as specifiedSchedulerServiceProperties.maxSchedulesReturned
.List<org.springframework.cloud.deployer.spi.scheduler.ScheduleInfo>
List all of the Schedules associated with the provided TaskDefinition up to the established maximum as specifiedSchedulerServiceProperties.maxSchedulesReturned
.org.springframework.data.domain.Page<org.springframework.cloud.deployer.spi.scheduler.ScheduleInfo>
list
(org.springframework.data.domain.Pageable pageable) List all of the schedules registered with the default platform.org.springframework.data.domain.Page<org.springframework.cloud.deployer.spi.scheduler.ScheduleInfo>
List all of the schedules registered with the system.List<org.springframework.cloud.deployer.spi.scheduler.ScheduleInfo>
list
(org.springframework.data.domain.Pageable pageable, String taskDefinitionName, String platformName) List all of the Schedules associated with the provided TaskDefinition.List<org.springframework.cloud.deployer.spi.scheduler.ScheduleInfo>
listForPlatform
(String platformName) List all of the schedules registered with the system up to the established maximum as specifiedSchedulerServiceProperties.maxSchedulesReturned
.void
schedule
(String scheduleName, String taskDefinitionName, Map<String, String> taskDeploymentProperties, List<String> commandLineArgs) Schedules the task specified with the taskDefinitionName with the default platform specific scheduler.void
schedule
(String scheduleName, String taskDefinitionName, Map<String, String> taskDeploymentProperties, List<String> commandLineArgs, String platformName) Schedules the task specified with the taskDefinitionName with the platform specific scheduler.void
unschedule
(String scheduleName) Unschedule a schedule that has been created for the default platform.void
unschedule
(String scheduleName, String platformName) Unschedule a schedule that has been created.void
unscheduleForTaskDefinition
(String taskDefinitionName) Unschedule all schedules that have been created for this task definition name.
-
Constructor Details
-
DefaultSchedulerService
public DefaultSchedulerService(CommonApplicationProperties commonApplicationProperties, List<TaskPlatform> taskPlatforms, TaskDefinitionRepository taskDefinitionRepository, AppRegistryService registry, ResourceLoader resourceLoader, TaskConfigurationProperties taskConfigurationProperties, org.springframework.boot.autoconfigure.jdbc.DataSourceProperties dataSourceProperties, String dataflowServerUri, ApplicationConfigurationMetadataResolver metaDataResolver, SchedulerServiceProperties schedulerServiceProperties, org.springframework.cloud.dataflow.audit.service.AuditRecordService auditRecordService, TaskExecutionInfoService taskExecutionInfoService, PropertyResolver propertyResolver, ComposedTaskRunnerConfigurationProperties composedTaskRunnerConfigurationProperties) Constructor for DefaultSchedulerService- Parameters:
commonApplicationProperties
- common properties for applications deployed via Spring Cloud Data Flow.taskPlatforms
- theTaskPlatform
s for this service.taskDefinitionRepository
- theTaskDefinitionRepository
for this service.registry
- theAppRegistryService
for this service.resourceLoader
- theResourceLoader
for this service.taskConfigurationProperties
- theTaskConfigurationProperties
for this service.dataSourceProperties
- theDataSourceProperties
for this service.dataflowServerUri
- the Spring Cloud Data Flow uri for this service.metaDataResolver
- theApplicationConfigurationMetadataResolver
for this service.schedulerServiceProperties
- theSchedulerServiceProperties
for this service.auditRecordService
- theAuditRecordService
for this service.taskExecutionInfoService
- theTaskExecutionInfoService
for this servicepropertyResolver
- thePropertyResolver
for this servicecomposedTaskRunnerConfigurationProperties
- theComposedTaskRunnerConfigurationProperties
for this service
-
-
Method Details
-
schedule
public void schedule(String scheduleName, String taskDefinitionName, Map<String, String> taskDeploymentProperties, List<String> commandLineArgs) Description copied from interface:SchedulerService
Schedules the task specified with the taskDefinitionName with the default platform specific scheduler. To setup the task with the scheduler set the properties required to process the schedule within the taskProperties map. Each scheduler property should be prefixed with "spring.cloud.scheduler.". The schedule expression (cron for example) are specified within the task properties using the "spring.cloud.scheduler.cron.expression" as the key and the associated value would be the cron expression to be used.- Specified by:
schedule
in interfaceSchedulerService
- Parameters:
scheduleName
- A name to be associated with the schedule.taskDefinitionName
- the name of theTaskDefinition
to be scheduled.taskDeploymentProperties
- properties required for scheduling or launching a task.commandLineArgs
- the command line args to be used when launching the task.
-
schedule
public void schedule(String scheduleName, String taskDefinitionName, Map<String, String> taskDeploymentProperties, List<String> commandLineArgs, String platformName) Description copied from interface:SchedulerService
Schedules the task specified with the taskDefinitionName with the platform specific scheduler. To setup the task with the scheduler set the properties required to process the schedule within the taskProperties map. Each scheduler property should be prefixed with "spring.cloud.scheduler.". The schedule expression (cron for example) are specified within the task properties using the "spring.cloud.scheduler.cron.expression" as the key and the associated value would be the cron expression to be used.- Specified by:
schedule
in interfaceSchedulerService
- Parameters:
scheduleName
- A name to be associated with the schedule.taskDefinitionName
- the name of theTaskDefinition
to be scheduled.taskDeploymentProperties
- properties required for scheduling or launching a task.commandLineArgs
- the command line args to be used when launching the task.platformName
- the name of the platform where the schedule should be created.
-
unschedule
Description copied from interface:SchedulerService
Unschedule a schedule that has been created.- Specified by:
unschedule
in interfaceSchedulerService
- Parameters:
scheduleName
- the name of the schedule to be removed.platformName
- the name of the platform from where the schedule will be destroyed.
-
unschedule
Description copied from interface:SchedulerService
Unschedule a schedule that has been created for the default platform.- Specified by:
unschedule
in interfaceSchedulerService
- Parameters:
scheduleName
- the name of the schedule to be removed.
-
unscheduleForTaskDefinition
Description copied from interface:SchedulerService
Unschedule all schedules that have been created for this task definition name.- Specified by:
unscheduleForTaskDefinition
in interfaceSchedulerService
- Parameters:
taskDefinitionName
- the name of the task definition.
-
list
public List<org.springframework.cloud.deployer.spi.scheduler.ScheduleInfo> list(org.springframework.data.domain.Pageable pageable, String taskDefinitionName, String platformName) Description copied from interface:SchedulerService
List all of the Schedules associated with the provided TaskDefinition.- Specified by:
list
in interfaceSchedulerService
- Parameters:
pageable
- Establish the pagination setup for the result set.taskDefinitionName
- to retrieve Schedules for a specified taskDefinitionName.platformName
- name of platform from which the schedules will be retrieved.- Returns:
- A List of Schedules configured for the provided taskDefinitionName.
-
list
public org.springframework.data.domain.Page<org.springframework.cloud.deployer.spi.scheduler.ScheduleInfo> list(org.springframework.data.domain.Pageable pageable, String platformName) Description copied from interface:SchedulerService
List all of the schedules registered with the system.- Specified by:
list
in interfaceSchedulerService
- Parameters:
pageable
- Establish the pagination setup for the result set.platformName
- the name of the platform where schedules will be obtained.- Returns:
- Paged items of schedules.
-
list
public org.springframework.data.domain.Page<org.springframework.cloud.deployer.spi.scheduler.ScheduleInfo> list(org.springframework.data.domain.Pageable pageable) Description copied from interface:SchedulerService
List all of the schedules registered with the default platform.- Specified by:
list
in interfaceSchedulerService
- Parameters:
pageable
- Establish the pagination setup for the result set.- Returns:
- Paged items of schedules.
-
list
public List<org.springframework.cloud.deployer.spi.scheduler.ScheduleInfo> list(String taskDefinitionName, String platformName) Description copied from interface:SchedulerService
List all of the Schedules associated with the provided TaskDefinition up to the established maximum as specifiedSchedulerServiceProperties.maxSchedulesReturned
.- Specified by:
list
in interfaceSchedulerService
- Parameters:
taskDefinitionName
- to retrieve Schedules for a specified taskDefinitionName.platformName
- the name of the platform where schedules will be retrieved.- Returns:
- A List of Schedules configured for the provided taskDefinitionName.
-
list
public List<org.springframework.cloud.deployer.spi.scheduler.ScheduleInfo> list(String taskDefinitionName) Description copied from interface:SchedulerService
List all of the Schedules associated with the provided TaskDefinition for the default platform up to the established maximum as specifiedSchedulerServiceProperties.maxSchedulesReturned
.- Specified by:
list
in interfaceSchedulerService
- Parameters:
taskDefinitionName
- to retrieve Schedules for a specified taskDefinitionName.- Returns:
- A List of Schedules configured for the provided taskDefinitionName.
-
listForPlatform
public List<org.springframework.cloud.deployer.spi.scheduler.ScheduleInfo> listForPlatform(String platformName) Description copied from interface:SchedulerService
List all of the schedules registered with the system up to the established maximum as specifiedSchedulerServiceProperties.maxSchedulesReturned
.- Specified by:
listForPlatform
in interfaceSchedulerService
- Parameters:
platformName
- the name for the platform where schedules will be retrieved.- Returns:
- A List of Schedules for the given system.
-
list
Description copied from interface:SchedulerService
List all of the schedules registered with the default platform up to the established maximum as specifiedSchedulerServiceProperties.maxSchedulesReturned
.- Specified by:
list
in interfaceSchedulerService
- Returns:
- A List of Schedules for the given system.
-
getSchedule
public org.springframework.cloud.deployer.spi.scheduler.ScheduleInfo getSchedule(String scheduleName, String platformName) Description copied from interface:SchedulerService
Retrieves theScheduleInfo
for the specified ScheduleName.- Specified by:
getSchedule
in interfaceSchedulerService
- Parameters:
scheduleName
- the name of schedule to retrieve.platformName
- the name of the platform where this schedule will be obtained.- Returns:
ScheduleInfo
for the scheduleName passed in.
-
getSchedule
public org.springframework.cloud.deployer.spi.scheduler.ScheduleInfo getSchedule(String scheduleName) Description copied from interface:SchedulerService
Retrieves theScheduleInfo
for the specified ScheduleName from the default platform.- Specified by:
getSchedule
in interfaceSchedulerService
- Parameters:
scheduleName
- the name of schedule to retrieve.- Returns:
ScheduleInfo
for the scheduleName passed in.
-
getTaskResource
-