Параметры планирования Sitecore
-
27-10-2019 - |
Вопрос
Проблема
В настоящее время я пытаюсь настроить запланированную задачу 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 посылает методами, которые вызываются с помощью этого метода начальных заданий?
Решение
Согласно фрагменту, с которым вы связаны на SDN, я думаю, что вы создаете свой собственный метод, похожий на WriteToLogFile
но нет Run()
. Анкет Шаг 4 говорит:
Заполните необходимые поля:
Тип: CustomScheduleTasks.task1, CustomscheduleTasks
Метод: WriteTologFile
Тип указывает на пространство имен и файл сборки. Метод указывает метод для вызова указанного класса.
Ваша команда теперь готова к использованию в качестве запланированной задачи.
Так что вместо вашего Run()
метод, назовите что -нибудь еще и установите в Method
Поле команды в Sitecore. Run()
является методом в базе данных из Sitecore, который работает.
Другие советы
Похоже, ваша задача на самом деле работает. Исключение ничего не упоминает о том, что не может найти свой метод, и исключение происходит из вашего метода задач. Попробуйте установить точку останова внутри метода и проверить, какой объект является нулевым.
Просто для справки, параметры, передаваемые для запланированной задачи, представляют собой элементы, указанные в поле элементов команды, элемент определения команды и элемент определения графика.
Ну ... ваше определение метода говорит «запустить», маленький r. Но в web.config вы запускаются, Big R. Sitecore использует здесь .NET Reflection, чтобы найти метод, поэтому он будет чувствителен к случаям.
У меня есть запланированные задачи в системе/задачах, а не в web.config. Работает как шарм.