質問

問題

現在、スケジュールとコマンドを使用して、データベースで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は言う:

必要なフィールドに記入してください:

タイプ: :custantcheduletasks.task1、custantcheduletasks

方法: :WriteTologfile

このタイプは、名前空間とアセンブリファイルを示します。この方法は、指定されたクラスを呼び出す方法を示します。

あなたのコマンドは、スケジュールされたタスクとして使用する準備ができました。

だからあなたの代わりに Run() 方法、それに何か他のものに名前を付けて、 Method Sitecoreのコマンドのフィールド。 Run() 実行されるSiteCoreのデータベースゼントの方法です。

他のヒント

あなたのタスクは実際に実行されているようです。例外は、あなたの方法を見つけられないことについては何も言及しておらず、例外はタスク方法から得られます。メソッド内にブレークポイントを設定し、どのオブジェクトがnullであるかを確認してみてください。

参照のために、スケジュールされたタスクに渡されたパラメーターは、コマンドのアイテムフィールド、コマンド定義項目、およびスケジュール定義項目で指定されたアイテムです。

まあ...あなたのメソッド定義は「実行」と書かれています、リトルr。しかし、web.configで実行されている場合、Big R. Sitecoreはここで.NET反射を使用してメソッドを見つけているため、ケースに敏感になります。

Web.configではなく、システム/タスクにスケジュールされたタスクが設定されています。魅力のように機能します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top