2012-05-03 2 views
1

5 초마다 실행되도록 작업을 구성하려고합니다 (프로덕션에서는 fequency가 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 로그를 확인한 결과 오류 또는 작업과 관련된 사항이 표시되지 않습니다.

내가 누락 된 아이디어가 있습니까?


편집 내가 로그에보고 있어요 그 "의심스러운"유일한 것입니다 : 내가 Sitecore 6.5을 사용하고

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) 

답변

0

나는 사이드 스텝이야 있지만 귀하의 질문에 조금, 내가 성공적으로 예약 된 작업에 대한 작업을하는 동안 디버거를 호출 받고 점점. 대신 Sitecore.Diagnostics.Log을 사용한 다음 관련 디버그 수준을 표시하려고합니다. 가끔씩은 제한적이라는 것을 알았지 만 타사 테일 유틸리티를 사용하면 쉽게 로그를 볼 수 있습니다.

어쩌면 다른 사람이 대답 할 때까지 인터액션 해결책을 제공 할 수 있습니다.

+0

작업 자체에 로그온하는 것은 로그에 없습니다. 로그가 정상적인 웹 요청에서 처리되는 내용을 로깅하므로 작업이 실행되고 있지 않다고 가정합니다. – 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 예약 작업은 귀하가 전화를 한 경우를 대비하여 시작된다는 것을 기억하십시오! –