2012-11-22 176 views
1

設置我的日程安排項目時間表: 20090326T112200 | 20990426T112200 | 127 | 00:20:00Sitecore的計劃任務不運行

應每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> 

任何幫助嗎?謝謝。

+0

計劃的「上次運行」字段的值是多少?你有任務分配這個時間表嗎?你在日誌中看到什麼時間表? –

+0

感謝您的更新。實際上最後一次運行字段從不工作。問題來自該方法。 – hui

回答

3

如果應用程序池尚未關閉,Sitecore將只運行計劃任務。換句話說,如果您的應用程序沒有收到足夠的流量,IIS可能會循環執行應用程序池以節省資源。爲防止這種情況發生,您可以設置一個保持活動的服務,在設定的時間間隔內向您的應用程序發出請求,以確保應用程序池永不停機。

3

由於其架構,調度是ASP.NET應用程序中的一個一致性問題。 Sitecore試圖解決這個問題,但在我看來,它做了一箇中等的工作。 Barbosa描述了一個明確的問題,但Sitecore有一個可以使用的內置Keepalive系統。在我的web.config(版本6.3)中,它是在您發佈的數據庫調度代理之後直接配置的。

我們沒有我們需要的所有信息來評估問題。但是,從您的評論看來,您的最後一次運行字段是空的?這是個問題。它必須必須有一個價值安排工作。只有「現在」和「上次運行」值之間的時間間隔大於「計劃」字段中的時間值時,計劃的項目纔會啓動。

這裏是我的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 Schedule或Command項目。你應該應該看到日程安排代理的輸出,它正在啓動/停止你的特定命令。如果您的計劃項目失敗,這將發生錯誤輸出。這使我們進入下一步...

您的計劃項目有一個命令字段,它必須鏈接到系統/任務/命令下的有效項目。該項目的類型和方法字段實際上特定哪個方法正在執行。如果這些設置正確,我將採取的下一步是使用一個按鈕來創建一次性的ASPX頁面......它執行此方法。如果不起作用......那麼你知道問題出在哪裏。

希望這會有所幫助。

8

我在試圖弄清楚爲什麼計劃中的任務沒有開火併且認爲我會針對特定場景發佈解決方案時遇到了這篇文章。

我發現的問題是,我安裝了Sitecore SIM InitializeSpeedBooster.cofig,它刪除了以下內容,這些內容會阻止計劃任務的運行。

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

刪除補丁:從配置中刪除,你仍然有Sitecore的一個更快的初始化,但與計劃任務運行。

在我的博客文章Sitecore scheduled tasks not working上可以找到更詳細的解釋。

+0

謝謝!一個注意:通常位於此文件夾App_Config \ Include \ zzz中的InitializeSpeedBooster.config – Sergey