문제

에서 팟 캐스트#15,제프 언급된 그는 트위터 최고를 실행하는 방법에 대한 정기적 이벤트를 배경으로하는 경우 그것은 정상적인 기능도 찾을 수 없는 것을 통해 트위터입니다.지금 할 필요가 비슷한 일을 던지는 질문 중 하나입니다.

현재는 계획이 때 첫 번째 사용자(아마도 나)에 들어가는 사이트를 시작하는 백그라운드 스레드 기다리는 때까지 할당시간(시간에 시간)및 그 개막 이벤트는 차단하는 다른 사람들(나는 윈도우 프로그래머 무역에 의하여 그래서 나는 생각한 관점에서의 이벤트와 WaitOnMultipleObjects)때까지 완료됩니다.

어떻게 제프에 Asp.Net 고 자신의 방법을 적용하 Java 웹 응용 프로그램의 세계?

도움이 되었습니까?

해결책

나는 생각을 개발하는 맞춤형 솔루션에 대한 백그라운드 작업 실행되지 않는 항상 가치가있다,그래서 나를 사용하는 것이 좋습니다 석영 스케줄러 에서 Java.

귀하의 상황에서 필요(백그라운드 작업을 실행하기 위해 웹 응용 프로그램에서)사용할 수 있습니다 ServletContextListener 에 포함되어 배포 초기화 엔진에는 시작 당신의 웹 컨테이너.

그 후 당신의 가능성을 시작(트리거)를 백그라운드 작업(일),예를 들어,당신이 사용할 수 있는 달력 또는 크론과 같은 표현입니다.귀하의 상황에서 대부분의 아마도 당신이 해결해야로 Simpletrigger 에 는 실행할 수 있습니 작업에 고정,정기적인 간격으로.

작업 스스로 설명할 수 있습 쉽게 너무에서 석영,그러나 당신은하지 않은 제공된 모든 정보는 당신이 필요로하는 것에 대해 실행을 제공 할 수 있도록 제안에서는 지역입니다.

다른 팁

앞서 언급했듯이 석영은 표준 솔루션입니다.는 경우에 대해 걱정하지 않는 클러스터링과 지속성을 배경의 작업에서 다시 사용할 수 있습니다 내장 ThreadPool 지원(Java5,6).를 사용하는 경우 ScheduledExecutorService 를 넣을 수 있습 Runnables 배경으로 스레드 풀을 기다리는 시간의 특정 금액을 실행하기 전에.

는 경우에 당신을 걱정 클러스터링 및/또는 지속 사용할 수 있습니다 JMS 큐 비동기 실행을 위해,하지만 당신은 여전히 방법이 필요를 지연하는 백그라운드 작업(사용할 수 있 석영이나 ScheduledExecutorService 이렇게하려면).

Jeff 의 메커니즘을 만들의 일종 캐시는 개체 ASP.Net 자동으로 다시 만들에서 어떤 종류의 간격을-그것은 될 듯 ASP.Net 특정 솔루션,그래서 아마도 당신을 도움이 되지 않습니다(또는 나)훨씬 자바에서 세계입니다.

https://stackoverflow.fogbugz.com/default.asp?W13117

우드:라,원래 요청 트위터에서이기 때문에,내가 그 원한 무언가가 가벼운 무게.내가 정말 원하지 않았을 같이 쓰는 윈도우 서비스입니다.나는 같은 느낌이었던 밴드 코드입니다.플러스 코드를 실제로는 웹 페이지에서 사실이기 때문에,저에게는 것은 논리적인 작업 단위의 웹사이트에이 웹 페이지입니다.그래서 그것은 정말처럼 우리는 전화로 웹 사이트,그것은 그냥 다른 요청에서 웹사이트,그래서 나는 그것을 보았으로는 뭔가가 있어야인라인,그리고 작은 접근 방식을 이용할 수 있는 최대는 나에게 추천 트위터에 기본적으로 무언가를 추가하는 응용 프로그램 캐시으로 고정이 만료 후,당신은 다시 호출할 때 그래서 그 기간이 만료하는 특정 기능이 수행하는 작업에 다음을 추가 그것을 다시 캐쉬와 같은 기간.그래서,그것은 조금 어쩌면"유대인은"오른쪽 단어입니다.

나의 접근 방식은 항상 있 OS(i.e크론 또는 Windows task scheduler)로드는 특정 URL 을에 몇 가지 간격,그리고 다음 설정 페이지에서는 URL 을 확인 큐를 수행하는 어떤 작업이 필요했지만,내가 듣고 관심이 있다면 더 나은 방법입니다.

에서 성적증명서,그것은 다음과 같의 fogbugz 사용하여 윈도우 서비스에 로드하는 URL 에 접근한다.

Spolsky:그래서 우리는 이런 특별한 페이지를 이라는 심장 박동이다.asp.고는 페이지 때마다,당신은 그것을 공격,그리고 사람이 그것을 칠 수 있다 언제든지:를 요청할 수 있습니다.하지만 그 때 페이지의 실행을 확인 큐를 기다리는 작업을 볼 수 있는 경우에는 아무것도 할 필요가 있습니다.고 아무거나가있는 경우에 수행 될 필요가있는,그것은 하나의 일을 찾은 다음에는 큐시하고 있다면 다른 것을 할 수턴 플러스,그리고 웹 페이지 전체 반환하는 것은 단 하나의 캐릭터에서 플러스와습니다.고 있다면 아무 것도 할 수 큐은 비어 반환합니다.그래서,사람을 호출 할 수 있습이고 공격으로 많은 시간,로드할 수 있습니다줍니다.asp 웹 브라우저에서 당신은 히트 Ctrl-R Ctrl-R Ctrl-R Ctrl-R 시작할 때까지 받고 적자를 대신 pluses.그리고 당신이 수행하는의 fogbugz 이 완료되면 모든것의 유지보수 작업을 관리 할 수 있습니다.그래서 그의 첫 번째 부분이고,두 번째 부분은 매우,매우 간단한 윈도우 서비스는 실행하고 그것의 전체 작업을 호출하는 것입 heartbeat.asp 및 얻는 경우에는 게다가,그것이 곧 다시고 가면 마이너스 통화,그것을 다시지만하지 않습니다.그래서 기본적으로 이 윈도우 서비스는 항상,실행하는 것은 매우,매우,매우 간단한 작업의 치는 URL 을 찾을 보면 플러스 또는 마이너스이고,다음을 예약 할 때 그것을 다시 실행되는지 여부에 따라 그리고 플러스 또는 마이너스.분명히 당신이 할 수 있는 모든 종류의 변화에서 당신이 원하는 이 테마,예를 들어,같은 어할 수 있습니다 실제로 반환하는 대신 그냥 플러스 마이너스를 말할 수 있었다"좋아 다시 나에게 전화 60 초에서"또는"나를 부르십시오 나는 더 많은 작업을 수행 할 수 있습니다." 과는 어떻게 작동하는지...도록 유지보수 서비스로,당신은 알고,그것은,당신은 알고,하프 페이지의 실행되는 코드는 정비 서비스,그리고 그것은 결코 변하지 않는 임의의 논리,거기에 그것은 단지 포함 간질하는 원인이 이러한 웹페이지를 얻을라는 특정장 주파수이다.고 내부에는 웹 페이지에 heartbeat.asp 있는 코드의 큐를 유지하는 작업을 수행해야에서 보이는 얼마나 많은 시간이 경과하고,당신이 알고,늦은 밤에 유지 관리하고 모든 일곱 일 삭제 모든 오래된 메시지가 스팸으로 표시고 모든 종류의 유지보수 작업을 정지 할 수 있습니다.그리고 그는 어떻게는 않습니다.

우리가 사용하는 jtcron 우리 예약에 백그라운드 작업을 처리합니다.그것이 잘 작동하고,이해하는 경우 크론 그것은 당신에게 의미합니다.

여기에 어떻게 그들이 그것에 StackOverflow.com:

http://blog.stackoverflow.com/2008/07/easy-background-tasks-in-aspnet/

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top