Pregunta

Problema

Actualmente estoy tratando de configurar un Sitecore tarea programada en la base de datos con los Horarios y los Comandos.

Hasta ahora he seguido http://sdn.sitecore.net/FAQ/Administration/Scheduled%20tasks.aspx para la mayoría de lo que he necesitado.Su método se utiliza:public void WriteToLogFile(Item[] itemArray, CommandItem commandItem, ScheduleItem scheduledItem).Estoy asumiendo que es los elementos que pasa en la programación, el comando propio elemento, y el elemento de programación en sí.

Tengo una función que sigue la misma sintaxis: protected void run(Item[] itemArray, CommandItem commandItem, ScheduleItem scheduleditem).He recieveing una excepción, ya que se ejecuta en los registros de mi pesar.Vinculado es el de pila de la excepción: http://pastie.org/1847345, pero aquí está la excepción anidada:

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)

Yo he probado un par de diferentes combinaciones de parámetros para aceptar sin suerte.

La programación de la web.Sección de configuración:

 <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>
 ...

Alguien podría saber los parámetros que sitecore envía con los métodos que se invocan a través de este método de iniciar los trabajos?

¿Fue útil?

Solución

Según el fragmento al que se vinculó en el SDN, creo que crea su propio método, similar a WriteToLogFile pero no Run(). El paso 4 dice:

Complete los campos necesarios:

Escribe: CustomScheduletass.Task1, CustomScheduleTasks

Método: Writetologfile

El tipo indica el espacio de nombres y el archivo de ensamblaje. El método indica el método para llamar a la clase especificada.

Su comando ahora está listo para su uso como tarea programada.

Entonces en lugar de tu Run() Método, nómbrelo algo más y configelo en el Method Campo del comando en Sitecore. Run() es el método en DatabaseAgent de Sitecore que se ejecuta.

Otros consejos

Parece que su tarea se ejecuta realmente.La excepción no se menciona nada acerca de no ser capaz de encontrar su método y la excepción viene de sus tareas método.Trate de establecer un punto de interrupción dentro del método y la comprobación de lo que el objeto es null.

Apenas para la referencia, los parámetros pasados a una tarea programada son los elementos que se especifican en los elementos de campo de los comandos, el comando de definición de elemento y el elemento de definición de la programación.

Bueno ... tu definición de método dice "Ejecutar", Little R. Pero en Web.Config se ha ejecutado, Big R. Sitecore está utilizando la reflexión de .NET aquí para encontrar el método, por lo que será sensible al caso.

Tengo mis tareas programadas configuradas en el sistema/tareas en lugar de web.config. Funciona de maravilla.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top