2014-10-29 61 views
0

更改JobKey而不篡改日程安排有什么危险?我们该怎么做?我想我们应该改变它的关联触发器,对吧?JobKey可以更改吗?怎么样?

+0

你想实现什么?另外,你到目前为止尝试过什么? – 2014-10-29 10:48:58

+0

@CircularReference我正在运行广告系列。广告系列信息存储在数据库中,我的工作密钥也是我的广告系列的名称。我希望用户能够重命名广告系列。如果一个活动被重命名,它的'JobKey'将会保留旧的。尽管我已经在'JobDataMap'中存储了广告系列的'Id',但我将与我的广告系列的更新名称不兼容。 /到目前为止我还没有尝试过。如果这很危险,我会阻止用户重命名广告系列的名称。 – Disasterkid 2014-10-29 10:58:12

回答

2

这将是一个不同的工作,所以你必须:

  • 与老JobKey检索工作,并呼吁scheduler.DeleteJob(key),因为你想同时得到JobDetailTrigger删除。
  • 重新安排新的JobKey和旧计划。

但是,由于广告系列有一个ID,因此您可以将其用作JobKey,此处假设ID不会更改。如果用户通过他们的活动名称来识别工作是很重要的,你可以建立一个新的JobDetail有类似的参数为现有的一个,但改变Description以匹配新的广告系列名称,然后调用:

scheduler.AddJob(jobDetail, true) 

即应用新的JobDetail代替旧的。

+0

现在听起来有点冒险。我会坚持保留我的广告系列名称。但是你的回答是正确的,并且你一直对Quartz.Net的开发有很大的帮助。 – Disasterkid 2014-10-30 08:08:35

相关问题