1

スケジュール項目のスケジュールを次のように設定します: 20090326T112200|20990426T112200|127|00:20:00

20 分ごとに実行する必要があります。しかし、このスケジュールを展開した後、このスケジュールは実行されていないようです。

web.config でのスケジューリングは次のようになります。

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

何か助けはありますか?ありがとう。

4

3 に答える 3

10

スケジュールされたタスクが起動しない理由を理解しようとしているときにこの投稿に出くわし、私が持っていた特定のシナリオの解決策を投稿すると思いました。

私が見つけた問題は、スケジュールされたタスクの実行を停止する以下を削除する Sitecore SIM InitializeSpeedBooster.cofig をインストールしたことでした。

    <processor type="Sitecore.Pipelines.Loader.InitializeScheduler, Sitecore.Kernel">
      <patch:delete />
    </processor>

その patch:delete を構成から削除しても、Sitecore の初期化はより迅速に行われますが、スケジュールされたタスクが実行されます。

より詳細な説明は、 Sitecore のスケジュールされたタスクが機能しないという私のブログ投稿にあります。

于 2016-07-25T16:17:46.550 に答える
3

アプリケーション プールが停止していない場合、Sitecore はスケジュールされたタスクのみを実行します。つまり、アプリケーションが十分なトラフィックを受信しない場合、IIS はリソースを節約するためにアプリケーション プールを循環させることがあります。これが起こらないようにするには、設定された間隔でアプリケーションにリクエストを送信するキープアライブ サービスをセットアップして、アプリケーション プールがサイクル ダウンしないようにすることができます。

于 2012-11-22T23:16:41.007 に答える
3

ASP.NET アプリケーションでは、そのアーキテクチャが原因で、スケジューリングが常に問題になります。Sitecore はこの問題の修正を試みましたが、私の意見では中途半端な仕事をしています。Barbosa は 1 つの明確な問題を説明していますが、Sitecore には組み込みのキープアライブ システムがあり、使用できます。私のweb.config(バージョン6.3)では、投稿したDBスケジューリングエージェントの直後に構成されています。

問題を評価するために必要な情報がすべて揃っているわけではありません。しかし、あなたのコメントから、Last Run フィールドが空であるように見えますか? これは問題です。スケジュールを機能させるには、値が必要です。スケジュールされた項目は、「現在」と最終実行値の間の時間間隔が [スケジュール] フィールドの時間値よりも大きい場合にのみ開始されます。

これは、正しく機能している Sitecore サイトの例です (RAW 値):

Schedule: 20000101|21000101|127|23:59:00
Last run: 20121126T074001

次の質問は次のとおりです。ログにスケジューリング エージェントからの出力が表示されますか? まず、INFO レベルでログを記録していることを確認します。次のように表示されます。

1924 10:40:22 INFO  Scheduler - Adding agent: Sitecore.Tasks.DatabaseAgent (interval: 00:10:00)

それが表示されない場合、Sitecore はスケジューラを起動していないため、Sitecore サポート リクエストを開く必要があります。これが表示される場合、問題はおそらく Sitecore のスケジュールまたはコマンド アイテムにあります。特定のコマンドを開始/停止しているスケジュール エージェントからの出力が表示されます。これは、スケジュールされた項目が失敗した場合にエラー出力が発生する場所です。次のステップに進みます...

スケジュール アイテムにはコマンド フィールドがあり、システム/タスク/コマンドの下の有効なアイテムにリンクする必要があります。その項目の Type および Method フィールドは、実際にどのメソッドが実行されているかを特定します。それらが正しく設定されている場合、次のステップは、このメソッドを実行する 1 つのボタンを備えた 1 回限りの ASPX ページを作成することです。それでもうまくいかない場合は、問題がどこにあるのかがわかります。

お役に立てれば。

于 2012-11-26T21:49:28.200 に答える