一部のジョブでは、処理されたユニットの数(アイテムのバージョン、インデックス、サイトなど)を追跡しないものがあります。その結果、ジョブ終了の際に処理されたユニットの数が空になってしまう問題が発生します。例えば:
INFO Job ended: Index_Update_IndexName=sitecore_web_index (units processed: )
INFO Job ended: Sitecore.ContentSearch.SolrProvider.Agents.IndexingStateSwitcher (units processed: )
INFO Job ended: Sitecore.Tasks.HtmlCacheClearAgent (units processed: )
あるジョブが失敗し、BaseJobOptions.WriteToLogがtrue(デフォルトの値)の場合、ジョブ終了前に別のログにメッセージが出力されます。Sitecoreクライアント ジョブについては、エラー メッセージがUIにも表示される場合があります。
以下のいずれかのオプションを検討してください:
public static void SignalEnd(JobArgs args)
{
var job = args.Job;
/* Uncomment for 10.0 and newer
if (job.Status.State == JobState.Aborted)
{
job.Status.LogInfo("Job aborted: {0}", job.DisplayName);
}
*/
if (job.Status.Processed > 0)
{
job.Status.LogInfo("Job ended: {0} (units processed: {1})", job.DisplayName, job.Status.Processed);
}
else
{
job.Status.LogInfo("Job ended: {0}", job.DisplayName);
}
}
<?xml version="1.0" encoding="utf-8" ?>
<sitecore xmlns:patch="http://www.sitecore.net/xmlconfig/" xmlns:set="http://www.sitecore.net/xmlconfig/set/" >
<pipelines>
<job>
<processor set:type="Custom.Assembly.Class, Custom.Assembly" method="SignalEnd"/>
</job>
</pipelines>
</sitecore>
註:異常な挙動が発生した場合(あるジョブで、以前は表示されていた「処理されたユニット数」が空になってしまうなど)、さらなる調査のためにお問い合わせを作成していただくことをお薦めします。