Spring 如何将CronTrigger信息存储到存储库中,并在应用程序启动时加载TaskScheduler?
我正在开发一个调度应用程序,其中用户定义了一些要在指定时间运行的作业。当作业被触发时,它应该调用RESTFUL URL。此外,此类作业还具有重试次数和超时设置等属性。我在两点上受阻:Spring 如何将CronTrigger信息存储到存储库中,并在应用程序启动时加载TaskScheduler?,spring,spring-boot,spring-data-jpa,Spring,Spring Boot,Spring Data Jpa,我正在开发一个调度应用程序,其中用户定义了一些要在指定时间运行的作业。当作业被触发时,它应该调用RESTFUL URL。此外,此类作业还具有重试次数和超时设置等属性。我在两点上受阻: CronTrigger以字符串形式表示并存储到数据库中,但问题是如何将其转换为CronTrigger,稍后用于创建TaskScheduler 应用程序应该从数据库中读取存储库中的所有信息,并在启动时构建TaskScheduler,但我不知道如何实现这一点 实体 @Entity public class Schedu
CronTrigger
以字符串形式表示并存储到数据库中,但问题是如何将其转换为CronTrigger
,稍后用于创建TaskScheduler
TaskScheduler
,但我不知道如何实现这一点@Entity
public class ScheduledJob {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
private String cronTrigger;
private String URL;
private int numRetries;
private int timeout;
}
与其尝试拼凑出自己的解决方案,我建议改用。使用Spring Boot(2或更高版本),由于添加了对Quartz的支持(请参阅) Quartz支持在数据库中存储此类信息。它还将利用这些信息触发工作。基本上你可以免费得到1和2
缺点是您必须使用除
@Scheduled
之外的其他工具来安排作业 不要发明你自己的解决方案,而是使用具有持久存储的石英。谢谢,但是1。你能不能把你的评论作为一个答案,这样我就可以把它标记为一个解决方案。2.你对我的问题2有什么建议吗?如果你使用石英2是免费的。