2012-02-04 4 views
6

AppHarbor에 배포 된 실행중인 .NET MVC 응용 프로그램에서 반복되는 작업을 시뮬레이트하기 위해 System.Runtime.Caching.MemoryCache를 사용하고 있습니다.AppHarbor에서 백그라운드 작업 시뮬레이션

캐시

항목은 오프셋 AbsoluteExpiration 포함 된 CacheItemPolicy 및 메소드를 호출하고 (설명 here 같이) 캐시의 항목의 추가를 retriggers RemovedCallback를 사용하여 추가

MemoryCache 안으로 처음 채워

Application_Start. 로컬에서는 잘 작동하지만 AppHarbor (HttpRuntime.Cache, 동일한 결과로 시도)에 배치되면 작동하지 않는 것 같습니다.

내 응용 프로그램이 AppHarbor의 CANOE (무료) 계정으로 실행되고 있는데이 계정은 한 명의 작업자 만 가지고 있습니다. 일부 유급 요금제로 업그레이드하기 전까지 백그라운드 작업을 시뮬레이션 할 수 없다는 뜻입니까?

감사합니다.

답변

0

업그레이드가 도움이되지 않는다고 생각합니다. 그들은 AppHarbor에 배경 작업을 추가하는 작업을하고 있지만 아직 사용 가능하다는 것을 알고 있습니다.

https://stillalive.com/과 같은 서비스를 정기적으로 사용하여 사이트의 페이지를 조회 한 다음 새 스레드를 가동하고 백그라운드 작업을 실행하는 것은 어떻습니까? 무료 애드온으로 제공됩니다.

배경 작업 기능을 사용할 수있을 때까지 기다리는 동안 이와 같은 작업을 수행하려고 생각했습니다.

+0

외부에서 페이지를 폴링 할 생각 이었지만 내 작업을 완료하는 데 약간의 시간이 걸립니다. AppHarbor 시간 초과 요청을 10 초 정도 후 및 작업이 여전히 실행되는지 여부를 알 수 없습니다. –

4

이 기능을 사용하려면 애플리케이션에 방문자가 한 번씩 방문해야합니다. StillAlive 외에도 Pingdom은 앱에 대한 요청을 생성하는 좋은 방법이기도합니다. MomentApp도 살펴보아야합니다. 우리는 백그라운드 작업을 곧 준비 할 것으로 기대합니다.

+0

기능을 구현하기 위해 모니터링을 어떻게 제안 할 수 있습니까? 모니터링의 상태에 의존하는 기능을 가지고있는 것은 정말 나에게 아마추어 같다. 캐시 콜백이 제대로 호출되지 않는 이유에 대해 대답 할 수 있습니까? 고맙습니다. – nakhli

+0

@ChakerNakhli 캐시 콜백이 호출되지 않는다는 것을 잘 모르겠다. 귀하의 앱입니다. Pingdom과 StillAlive는 캐시 콜백이 발사 될 기회를 얻도록 응용 프로그램에 요청을 만듭니다. 고맙습니다. – friism

+1

먼저 appharbor를 정말 좋아합니다. 그것은 대단히 좋은 생각입니다. 그러나 모니터링은 응용 프로그램의 상태를 모니터하고 성능을 측정하기위한 것입니다. 어플리케이션 로직은 모니터링이 수행되거나 구현되는 방법에 의존해서는 안됩니다. 프로브 효과를 최소화해야합니다. 그것에 의존하지 마십시오. 나는 감시에 의존한다. 즉, ops가 그것을 변경하기로 결정하면, 그들은 단순히 응용 프로그램을 깰 것이다! 실생활에서는 받아 들일 수 없습니다. 미안하지만 직원들에게 모니터링을 사용하도록 권장하는 사람들은 appharbor을 아마추어를위한 장난감으로 보이게하고 실제 앱을위한 견고한 플랫폼 생각은 아닙니다. – nakhli