如何将石英作业分配给用户和类别?

How to assign quartz job to user and category?

我正在使用 spring boot 和 quartz 实现网络应用程序,以允许注册用户安排通知。这些通知分为两类:短信和电子邮件。我希望能够选择类别短信或电子邮件,然后按类别列出所有预定的通知。用户可以编辑已安排的通知、添加新通知和删除已选择的通知。任务似乎很简单,但我不知道如何将工作分配给用户和类别,因为当我创建新工作时,有可能仅通过工作 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,它允许在一些数据库 table 中保存 job_details、触发器等,并从数据库

有关详细信息,请参阅 http://www.quartz-scheduler.org/documentation/quartz-2.3.0/tutorials/tutorial-lesson-09.html

到那时,您可以很容易地创建一个额外的 table,它可以 link 用户和职位类别并通过数据库管理它们。