public void configureTasks()

in spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-schedulerx/src/main/java/com/alibaba/cloud/scheduling/schedulerx/service/ScheduledJobSyncConfigurer.java [145:193]


	public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
		logger.info("spring scheduled job is not empty, start to sync jobs...");
		try {
			Map<String, JobProperty> jobs = new HashMap<>();
			if (!CollectionUtils.isEmpty(taskRegistrar.getCronTaskList())) {
				for (CronTask cronTask : taskRegistrar.getCronTaskList()) {
					if (cronTask.getRunnable() instanceof ScheduledMethodRunnable) {
						ScheduledMethodRunnable runnable = (ScheduledMethodRunnable) cronTask.getRunnable();
						JobProperty jobProperty = convertToJobProperty(cronTask, runnable.getTarget(), runnable.getMethod());
						jobs.put(jobProperty.getJobName(), jobProperty);
					}
				}
			}
			if (!CollectionUtils.isEmpty(taskRegistrar.getFixedDelayTaskList())) {
				for (IntervalTask intervalTask : taskRegistrar.getFixedDelayTaskList()) {
					if (intervalTask.getRunnable() instanceof ScheduledMethodRunnable) {
						ScheduledMethodRunnable runnable = (ScheduledMethodRunnable) intervalTask.getRunnable();
						JobProperty jobProperty = convertToJobProperty(intervalTask, runnable.getTarget(), runnable.getMethod());
						jobs.put(jobProperty.getJobName(), jobProperty);
					}
				}
			}
			if (!CollectionUtils.isEmpty(taskRegistrar.getFixedRateTaskList())) {
				for (IntervalTask intervalTask : taskRegistrar.getFixedRateTaskList()) {
					if (intervalTask.getRunnable() instanceof ScheduledMethodRunnable) {
						ScheduledMethodRunnable runnable = (ScheduledMethodRunnable) intervalTask.getRunnable();
						JobProperty jobProperty = convertToJobProperty(intervalTask, runnable.getTarget(), runnable.getMethod());
						jobs.put(jobProperty.getJobName(), jobProperty);
					}
				}
			}

			// 获取仅SchedulerX注解任务
			Collection<Pair<Object, Method>> schedulerXTasks = schedulerxSchedulingConfigurer.getSchedulerXTaskTargets();
			if (schedulerXTasks != null && schedulerXTasks.size() > 0) {
				for (Pair<Object, Method> task : schedulerXTasks) {
					JobProperty jobProperty = convertToJobProperty(null, task.getFirst(), task.getSecond());
					jobs.put(jobProperty.getJobName(), jobProperty);
				}
			}

			jobSyncService.syncJobs(jobs, properties.getNamespaceSource());
			logger.info("spring scheduled job is not empty, sync jobs finished.");
		}
		catch (Exception e) {
			logger.info("spring scheduled job is not empty, sync jobs failed.", e);
			throw new RuntimeException(e);
		}
	}