在我的应用程序中,我将作业与每个用户相关联:
IJobDetail job = JobBuilder.Create<SampleJob>()
.UsingJobData("userId", 10)
.WithIdentity("job1", "group1")
.Build();
然后我想在与我的应用程序的某些用户相关联的quartz.net中安排所有作业。
是否可能,或者有人可以提出解决方案? 谢谢
答案 0 :(得分:0)
假设您要在计划后执行此操作,我们可以填充
List<JobDetail>
但是我找不到比遍历键更好的方法了。我不得不做类似的事情,但是后来按照Rabban的要求改为了对JobKey的依赖。
var groupMatcher = GroupMatcher<JobKey>.GroupContains("group1");
var keys = await scheduler.GetJobKeys(groupMatcher); // Get all JobKeys
// Get all JobDetails
var jobDetails = new List<IJobDetail>();
foreach(var key in keys)
{
jobDetails.Add(await scheduler.GetJobDetail(key));
}
var userTensJobs = jobDetails.Where(j => j.JobDataMap.WrappedMap.Any(x =>
x.Key.Equals("userId") && x.Value.Equals(10)));