private JobProperty convertToJobProperty()

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


	private JobProperty convertToJobProperty(Task task, Object target, Method method) {
		JobProperty jobProperty = new JobProperty();
		Class targetClass = AopProxyUtils.ultimateTargetClass(target);
		if (ClassUtils.isCglibProxyClass(targetClass)) {
			targetClass = ClassUtils.getUserClass(target);
		}
		String jobName = targetClass.getSimpleName() + "_" + method.getName();
		String model = this.defaultModel;

		if (task != null && task instanceof CronTask) {
			String expression = ((CronTask) task).getExpression();
			jobProperty.setCron(expression);
		}

		if (task != null && task instanceof IntervalTask) {
			long interval = ((IntervalTask) task).getInterval() / 1000;
			interval = interval < 1 ? 1 : interval;
			if (interval < 60) {
				jobProperty.setTimeType(TimeType.SECOND_DELAY.getValue());
			}
			else {
				jobProperty.setTimeType(TimeType.FIXED_RATE.getValue());
			}
			jobProperty.setTimeExpression(String.valueOf(interval));
		}

		SchedulerX schedulerXMethod = AnnotatedElementUtils.getMergedAnnotation(method, SchedulerX.class);
		if (schedulerXMethod != null) {
			if (StringUtils.isNotEmpty(schedulerXMethod.name())) {
				jobName = schedulerXMethod.name();
			}
			if (isValidModel(schedulerXMethod.model())) {
				model = schedulerXMethod.model();
			}
			if (StringUtils.isNotEmpty(schedulerXMethod.cron())) {
				jobProperty.setCron(schedulerXMethod.cron());
			}
			if (schedulerXMethod.fixedRate() > 0) {
				long interval = schedulerXMethod.timeUnit().toSeconds(schedulerXMethod.fixedRate());
				interval = interval < 1 ? 1 : interval;
				if (interval < 60) {
					jobProperty.setTimeType(TimeType.SECOND_DELAY.getValue());
				}
				else {
					jobProperty.setTimeType(TimeType.FIXED_RATE.getValue());
				}
				jobProperty.setTimeExpression(String.valueOf(interval));
			}
		}

		jobProperty.setJobName(jobName);
		jobProperty.setJobType(JobType.SPRINGSCHEDULE.getKey());
		jobProperty.setJobModel(model);
		SpringScheduleProfile profile = new SpringScheduleProfile();
		profile.setClassName(targetClass.getName());
		profile.setMethod(method.getName());
		jobProperty.setContent(JsonUtil.toJson(profile));
		jobProperty.setOverwrite(overwrite);
		return jobProperty;
	}