2014-10-29 1 views
0

В чем опасность изменения JobKey без вмешательства со своим графиком? И как мы можем это сделать? Полагаю, мы тоже должны изменить связанные с ним триггеры, верно?Можно ли изменить JobKey? Как?

+0

Чего вы хотите достичь? Кроме того, что вы пробовали до сих пор? –

+0

@CircularReference Я запускаю кампании. Информация о кампании сохраняется в базе данных, а мои ключи работы также являются именами моих кампаний. Я хотел бы, чтобы пользователь мог переименовать кампанию. Если кампания будет переименована, ее «JobKey» останется прежним. Хотя у меня уже есть идентификатор кампании, хранящийся в 'JobDataMap', но у меня будет несовместимость с обновленным названием моей кампании./Я пока не пробовал. И если это опасно, я не позволю пользователю переименовать название кампании. – Disasterkid

ответ

2

Было бы другую работу, так что вы должны:

  • Получить работу со старым JobKey и называют scheduler.DeleteJob(key), так как вы хотите, как JobDetail и Trigger удалены.
  • Перепланировать с новым JobKey и старым расписанием.

Однако, поскольку в кампании есть идентификатор, вы можете использовать это как JobKey, причем здесь предполагается, что идентификатор не изменится. Если это важно для пользователей, чтобы определить работу по их имени кампании, вы можете создать новую JobDetail с аналогичными параметрами, как существующий, но изменить Description, чтобы соответствовать новому названию кампании, а затем вызвать:

scheduler.AddJob(jobDetail, true) 

, который должен замените старый JobDetail на новый.

+0

Сейчас это звучит немного рискованно. Я буду придерживаться названия своей кампании. Но ваш ответ правильный, и, как всегда, вы очень помогаете мне в разработке с Quartz.Net. – Disasterkid