2014-10-29 81 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

相關問題