Quartz.net获得通过特定的作业数据的所有作业

问题描述 投票:0回答:1

在我的应用程序工作的每个用户相关联:

    IJobDetail job = JobBuilder.Create<SampleJob>()
        .UsingJobData("userId", 10)
        .WithIdentity("job1", "group1")
        .Build();

然后我想获得定于关联到我的应用程序的一些用户quartz.net的所有作业。

有没有可能,或者有人能提出一个解决方案?谢谢

c# .net quartz.net
1个回答
0
投票

假设你要调度后做的话,我们可以填充

List<JobDetail>

但我找不到比通过按键迭代更好的办法。我必须做同样的事情,但后来改变了依赖于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)));
© www.soinside.com 2019 - 2024. All rights reserved.