2009-10-01 2 views

ответ

1

Хасана,

Если исключение пузырьков из кода, он действительно показывает неудавшийся статус. Если вы хотите явно «провалить» свой запуск с экземпляром задания таймера, вы можете и должны исключить исключение. Это можно сделать в сочетании с установкой значения флага SPJobDefinition.Retry в значение TRUE, если вы чувствуете, что другой пробег будет охватывать ваше «проблемное состояние».

К тому же, если вы используете исключения для регистрации в журналах (например, для записи дополнительной информации в журналы ULS - никогда не плохая идея), реконструируйте все исключения, которые вы уловите, если вы действительно не компенсируете их. Вы хотите избегать употребления исключений только для того, чтобы избежать исключения из-за указанных причин (статус исключения привязан к отчету о успехе/неудаче работы).

Я надеюсь, что это поможет!

+0

Btw делать задания с OneTimeSchedule исчезают со страницы состояния работы при ошибке? Если да, как пользователь узнает, что работа завершилась неудачно? –

+0

Отличный вопрос, Хасан. Прошло некоторое время с тех пор, как я написал однократное задание таймера (задание по обновлению, которое я написал для этой функции, было последним: http://blobcachefarmflush.codeplex.com), но я, похоже, помню, что неудачные задания сидеть в списке статусов - по крайней мере, на некоторый период времени. Если память служит мне правильно, она не задержалась надолго - мне пришлось более или менее опросить ее (обновив страницу состояния), прежде чем она исчезнет. –