В чем опасность изменения JobKey
без вмешательства со своим графиком? И как мы можем это сделать? Полагаю, мы тоже должны изменить связанные с ним триггеры, верно?Можно ли изменить JobKey? Как?
ответ
Было бы другую работу, так что вы должны:
- Получить работу со старым
JobKey
и называютscheduler.DeleteJob(key)
, так как вы хотите, какJobDetail
иTrigger
удалены. - Перепланировать с новым
JobKey
и старым расписанием.
Однако, поскольку в кампании есть идентификатор, вы можете использовать это как JobKey
, причем здесь предполагается, что идентификатор не изменится. Если это важно для пользователей, чтобы определить работу по их имени кампании, вы можете создать новую JobDetail
с аналогичными параметрами, как существующий, но изменить Description
, чтобы соответствовать новому названию кампании, а затем вызвать:
scheduler.AddJob(jobDetail, true)
, который должен замените старый JobDetail
на новый.
Сейчас это звучит немного рискованно. Я буду придерживаться названия своей кампании. Но ваш ответ правильный, и, как всегда, вы очень помогаете мне в разработке с Quartz.Net. – Disasterkid
Чего вы хотите достичь? Кроме того, что вы пробовали до сих пор? –
@CircularReference Я запускаю кампании. Информация о кампании сохраняется в базе данных, а мои ключи работы также являются именами моих кампаний. Я хотел бы, чтобы пользователь мог переименовать кампанию. Если кампания будет переименована, ее «JobKey» останется прежним. Хотя у меня уже есть идентификатор кампании, хранящийся в 'JobDataMap', но у меня будет несовместимость с обновленным названием моей кампании./Я пока не пробовал. И если это опасно, я не позволю пользователю переименовать название кампании. – Disasterkid