Параметры планирования Sitecore - PullRequest
0 голосов
/ 29 апреля 2011

Проблема

В настоящее время я пытаюсь настроить запланированное задание Sitecore в базе данных с помощью расписаний и команд.

До сих пор я следовал http://sdn.sitecore.net/FAQ/Administration/Scheduled%20tasks.aspx по большей части того, что мне было нужно.Их метод использует: public void WriteToLogFile(Item[] itemArray, CommandItem commandItem, ScheduleItem scheduledItem).Я предполагаю, что это элементы, переданные в элементе расписания, сам элемент команды и сам элемент расписания.

У меня есть функция запуска, которая использует тот же синтаксис: protected void run(Item[] itemArray, CommandItem commandItem, ScheduleItem scheduleditem).Я получаю исключение, поскольку оно запускается в моих журналах.Связан стек исключений: http://pastie.org/1847345,, но вот вложенное исключение:

Exception: System.NullReferenceException 
Message: Object reference not set to an instance of an object. 
Source: fhservices at fhservices.twitterPull.run(Item[] itemArray, CommandItem commandItem, ScheduleItem scheduleditem)

Я пробовал несколько разных комбинаций параметров, чтобы принять их без удачи.

Планирование web.config Раздел:

 <scheduling>
  <!-- Time between checking for scheduled tasks waiting to execute -->
  <frequency>00:01:00</frequency>
  <!-- Agent to process schedules embedded as items in a database -->
  <agent type="Sitecore.Tasks.DatabaseAgent" method="Run" interval="00:02:00">
    <param desc="database">core</param>
    <param desc="schedule root">/sitecore/system/tasks/schedules</param>
    <LogActivity>true</LogActivity>
  </agent>
 ...

Кто-нибудь знает параметры, которые sitecore отправляет методами, которые вызываются с помощью этого метода запуска заданий?

Ответы [ 3 ]

1 голос
/ 30 апреля 2011

Похоже, ваша задача на самом деле выполняется.В исключении ничего не говорится о невозможности найти ваш метод, а исключение происходит из метода ваших задач.Попробуйте установить точку останова внутри метода и проверить, какой объект имеет значение null.

Просто для справки, параметры, передаваемые запланированной задаче, представляют собой элементы, указанные в поле элементов команды, элемент определения команды и расписаниеопределение элемента.

1 голос
/ 29 апреля 2011

Согласно фрагменту, который вы указали в SDN, я думаю, что вы создаете свой собственный метод, похожий на WriteToLogFile, но не Run(). Шаг 4 говорит:

Заполните необходимые поля:

Тип : CustomScheduleTasks.Task1, CustomScheduleTasks

Метод : WriteToLogFile

Тип указывает пространство имен и файл сборки. Метод указывает метод для вызова в указанном классе.

Ваша команда готова для использования в качестве запланированной задачи.

Таким образом, вместо вашего Run() метода назовите его как-нибудь еще и задайте его в поле Method команды в Sitecore. Run() - это метод в DatabaseAgent от Sitecore, который выполняется.

0 голосов
/ 30 апреля 2011

Ну ... ваше определение метода говорит "беги", мало r. Но в web.config у вас есть Run, большой R. Sitecore использует .Net отражение здесь, чтобы найти метод, поэтому он будет чувствительным к регистру.

Мои запланированные задания настроены в System / Tasks, а не в web.config. Работает как шарм.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...