2012-05-03 86 views
1

我試圖配置一個任務每5秒運行一次(在生產中,頻率將設置爲30分鐘,但我將其設置爲5秒進行調試)。從web.config Sitecore任務配置

<scheduling> 
    <!-- Time between checking for scheduled tasks waiting to execute --> 
    <frequency>00:00:10</frequency> 
.... 
<agent type="MyStuff.Sitecore.Tasks.UpdateJob" method="Run" interval="00:00:05"> 
     <LogActivity>true</LogActivity> 
     </agent> 

我的課是這樣的:

namespace MyStuff.Sitecore.Tasks 
{ 
    public class UpdateJob 
    { 
     public void Run() 
     { 
      //debugger never enters here 
     } 
    } 
} 

但無論怎樣,代碼似乎永遠不會被調用。我試過打其他網頁,所以我知道asp.net工作進程是活着的。

該類是在共享庫中調用的網站項目,所以無論sitecore配置正在尋找MyStuff.Sitecore.Tasks.UpdateJob類型應該能夠找到它。此外,我檢查了Sitecore日誌,我沒有看到任何錯誤或任何有關任務

任何想法我失蹤?


編輯唯一 「可疑」 是我看到的日誌是:

ManagedPoolThread #12 15:53:10 INFO Starting update of index for the database 'master' (1 pending). 
ManagedPoolThread #12 15:53:10 INFO Update of index for the database 'master' done. 
ManagedPoolThread #18 15:53:36 ERROR Exception in geoip worker thread. 
Exception: System.Reflection.TargetInvocationException 
Message: Exception has been thrown by the target of an invocation. 
Source: mscorlib 
    at System.RuntimeMethodHandle._InvokeConstructor(IRuntimeMethodInfo method, Object[] args, SignatureStruct& signature, RuntimeType declaringType) 
    at System.RuntimeMethodHandle.InvokeConstructor(IRuntimeMethodInfo method, Object[] args, SignatureStruct signature, RuntimeType declaringType) 
    at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) 
    at Sitecore.Reflection.ReflectionUtil.CreateObject(Type type, Object[] parameters) 
    at Sitecore.Configuration.Factory.CreateFromTypeName(XmlNode configNode, String[] parameters, Boolean assert) 
    at Sitecore.Configuration.Factory.CreateObject(XmlNode configNode, String[] parameters, Boolean assert, IFactoryHelper helper) 
    at Sitecore.Configuration.Factory.GetProviders[TProvider,TCollection](List`1 nodes) 
    at Sitecore.Configuration.Factory.GetProviders[TProvider,TCollection](String rootPath, TProvider& defaultProvider) 
    at Sitecore.Configuration.ProviderHelper`2.ReadProviders() 
    at Sitecore.Configuration.ProviderHelper`2.get_Provider() 
    at Sitecore.Analytics.Lookups.GeoIpWorker.ProcessGeoIp() 
    at Sitecore.Analytics.Lookups.GeoIpWorker.<Wakeup>b__3(Object a) 

我使用Sitecore的6.5

回答

0

雖然我側步你的問題有點兒,我從來沒有成功地在調度任務時調用調試器。我改爲使用Sitecore.Diagnostics.Log,然後查看相關的調試級別。通常情況下,我覺得這很有限,但使用第三方尾部工具時,您可以在發生日誌時輕鬆觀看日誌。

也許這會給你一箇中間解決方案,直到別人回答。

+0

我沒有記錄在工作本身是在日誌中。日誌正在記錄在正常的Web請求上處理的東西,所以我認爲該任務只是沒有運行 – lurscher

+2

你能否嘗試更新你的代理聲明爲'其中Mystuff是您的程序集名稱。在黑暗中拍攝,但沒有其他人插話。 – al3xnull

+0

你應該發表評論作爲你的答案,因爲我的錢會在那。 – techphoria414

0

答案在於<frequency>00:00:10</frequency>,這應該總是和最常見的任務一樣低,所以在這種情況下是00:00:05。

+0

嘗試過,但沒有工作 – lurscher

3

您可以嘗試更新您的代理聲明到<agent type="Mystuff.Sitecore.Tasks.UpdateJob, Mystuff" method="Run" interval="00:00:05">,其中Mystuff是您的程序集名稱。看起來像組件缺失。

根據techphoria414的建議添加爲回答。

+0

這將是這個。 –

+0

,並記住,Sitecore計劃任務將啓動,以防萬一你打電話給你的網站! –