У меня есть класс MyMainApplication, который является SPIisWebServiceApplication.Так что он размещен и работает под управлением IIS.
У меня есть специальное задание таймера sharepoint, скажем, с именем класса CustomTimerJob, который является производным от класса SPJobDefinition.Итак, задания таймера выполняются под OWSTimer.exe
У меня есть два вопроса: [Пожалуйста, посмотрите код ниже, чтобы связать вопросы]
Переменные в моем CutomTimerJob, они доступны из вызова, в моем примере это будет var job = new CustomTimerJob ();job.RunNow ();, будет ли задание varibale иметь ссылку на запущенный customeTimerJob и сможет ли получить значение job.status?Я видел, что люди использовали ключевое слово [persisted] для обозначения переменных, чтобы сохранить состояние.Буду признателен, если кто-нибудь сможет подробнее рассказать об этом.Почему это используется и как оно на самом деле работает, где оно сохраняется?
Может ли исключение переместиться обратно к вызываемому объекту?Насколько я понимаю, логично, что исключение не будет возвращено вызываемому объекту, поскольку задание таймера выполняется в отдельном процессе.Но тогда вопрос в том, что, когда он делает это var job = new CustomTimerJob (); на что указывает переменная job?
Код, который я написал, выглядит примерно так:
> Class MyMainApplication : SPIiWebServiceApplication
> {
> // something
> .
> .
> .
> void some_function()
> {
> // Create and run the timer job immediately
>
> var job = new CustomTimerJob()
> job.RunNow();
>
> // Give it a bit of time before checking the status
> Thread.Sleep(5000);
>
> // Want to print the status to see if it was changed when it ran
> Console.Writeln( job.Status );
>
> }
>
> }
>
> ----------------------
>
> class CustomTimerJob : SPJobDefinition
> {
>
> public Boolean status;
> // something
>
> public override void Execute(Guid contentDbId)
> {
> status = true;
> try {
> // do some processing
> } catch (Exception) {
>
> // Can I throw the exception up from here ? And will the calle get the exception
> // throw new CustomException(e);
>
> }
>
> }
Я действительно ценю читателей, у которых было сердце, чтобы прочитать все до этой строки.Слава от меня!
Заранее спасибо.