spring - 如何将石英作业分配给用户和类别?
问题描述
我正在使用 Spring Boot 和 Quartz 实现 Web 应用程序,以允许注册用户安排通知。这些通知分为两类:短信和电子邮件。我想选择类别短信或电子邮件,然后按类别列出所有预定通知。用户可以编辑已安排的通知、添加新通知和删除选定通知。任务似乎很简单,但我不知道如何将工作分配给用户和类别,因为当我创建新工作时,只能通过工作 ID 和组名来识别工作。请参阅以下代码片段:
private JobDetail createJob(ScheduleEmailDto scheduleEmailDto) {
JobDataMap jobDataMap = new JobDataMap();
jobDataMap.put("email", scheduleEmailDto.getEmail());
jobDataMap.put("subject", scheduleEmailDto.getSubject());
jobDataMap.put("body", scheduleEmailDto.getBody());
Integer userId = scheduleEmailDto.getUserId();
Integer categoryId = scheduleEmailDto.getCategoryId();
JobDetail newJob = JobBuilder.newJob(EmailJob.class)
.withIdentity(UUID.randomUUID().toString(), "group")
.usingJobData(jobDataMap)
.storeDurably()
.build();
return newJob;
}
有谁能够指出我如何将新创建的工作分配给用户和类别?所有建议都会非常有帮助。
解决方案
如果您还没有,您可以配置一个JDBCJobStore
,它允许将 job_details、触发器等保存在几个数据库表中并从 DB 处理它们。
有关详细信息,请参阅http://www.quartz-scheduler.org/documentation/quartz-2.3.0/tutorials/tutorial-lesson-09.html 。
那时,您可以轻松创建一个附加表,该表可以将用户和类别链接到作业并通过 DB 管理它们。
推荐阅读
- python - 包含已删除元素的列表
- prometheus - 有没有办法让 prometheus 不刮掉 pod 的端口?
- python - 对于每一行,获取最频繁值的频率
- c# - 如何在 C# 中验证签名而不通过填充算法
- html - 如何在由宽度定义的元素下响应式放置 Div
- javascript - 未捕获的语法错误:意外的标识符 game.js:25
- jackson - 如何在 Ktor 中配置 jackson-modules-java8
- wordpress - wordpress 下一篇文章链接没有按预期工作
- sql - 在一个查询中使用两次嵌套查询 - 用于 FROM 和 WHERE
- java - 界面管理eclipse