2014-02-05 3 views
0

저는 QueueInput 트리거를 사용하는 간단한 Azure WebJob을 만들었습니다. 문제없이 배포되었고 관리 포털을 통해 일정을 계획하여 '계속 실행'되도록했습니다.WebJob이 트리거하지 않습니다.

초기 테스트는 대기열에 아무것도 넣지 않은 직후에 작업이 시작되는 것처럼 보였습니다.

우연히 나는 대기열에 다른 것을 넣기 전에 하루 정도 남겨 두었습니다. 이번에는 작업이 몇 분 안에 시작되지 않았으므로 포털에 로그인하여 호출 로그를 보았습니다. 이는 작업이 바로 그 순간에 시작되었음을 보여줍니다.

나는 우연의 일치가 너무 많아서 다른 것을 대기열에 넣기 전에 남겨 두었습니다. 다시 말하지만, 그 일은 시작되지 않았습니다. 나는 그것을 밤새도록 놓았고 아침까지는 여전히 방아쇠를 당기지 않았다.

이번에는 관리 포털에 로그인했을 때 WebJob 페이지에서 작업이 '중단됨'으로 표시되었음을 확인했습니다. 상태가 '실행 중'으로 바뀌기까지는 약 10 초 정도였습니다. 그런 다음 작업은 예상대로 밤 전 대기열에 배치 된 것으로부터 즉시 트리거되었습니다.

알파 릴리스이므로 글리치가 예상됩니다. 다른 사람이 비슷한 경험을했는지 궁금합니다.

+0

작업 코드를 공유해주십시오. –

+0

또한 무료 웹 사이트 또는 어떤 웹 사이트를 사용합니까? –

+0

WebSite가 Free가 아닌 Shared 모드로 실행 중입니다. – iturner100

답변

2

WebJob SDK의 경우 트리거 (새 대기열 메시지, 새 BLOB 등)를 수신하려면 작업이 실행 중이어야합니다. Azure 웹 사이트 무료 티어는 할당량을 가지고 있으며 더 이상 트리거를 듣지 않는다는 것을 의미하는 당신의 직업을 잠자기 상태로 만듭니다. 사이트를 사용하면 다시 사이트를 방문하게되고 트리거를 다시 듣기 시작할 수 있습니다.

호스팅 대행 작업이 실행 중이 아니면 (SDK가 하트 비트를 통해이를 감지하면) SDK 대시 보드에 기능 옆에 경고 아이콘이 표시됩니다.

+0

작업이 mvc 및 webapi를 모두 포함하는 웹 사이트 내에서 실행되고 있습니다. Json은 궁극적으로 항목이 저장 대기열에 저장되도록하는 webapi에 게시됩니다. webjob에는 외부 API에 게시하는 큐 트리거가 있습니다. 이렇게 이벤트 순서에 따라 웹 jop의 수명은 웹 사이트 자체의 수명과 관련이 없습니다. 원래 게시물에 따라 대시 보드는 작업을 '중단됨'으로 짧게 표시 한 다음 작업을 '실행 중'상태로 되 돌리는 것으로 보입니다. 관련성이있는 한 가지는 내 직업이 비동기 메소드를 사용하고 있다는 것입니다. – iturner100

+0

SDK는 (아직) 비동기를 지원하지 않습니다. 먼저 모든 것을 동기화하는 것이 좋습니다. 웹 작업 (즉, Microsoft.WindowsAzure.Jobs.JobHost를 참조하는 C# 코드)이 실행 중일 때 하트 비트가 생성됩니다. 대시 보드가 하트 비트를 감지하여 호스트가 예기치 않게 중단되었는지 확인합니다. 대시 보드는 호스트가 실행 중이 아니면 경고를 표시합니다. –

2

웹 사이트가 "항상 켜기"설정으로 구성되어 있는지 확인하십시오.

사이트에 지속적으로 실행되는 작업이 포함되어있는 경우이 설정을 사용하지 않으면 안정적으로 수행되지 않을 수 있습니다. 그들은 일정 기간 동안 유휴 경우

http://azure.microsoft.com/en-us/documentation/articles/web-sites-configure/

는 기본적으로 웹 사이트는 언로드된다. 이렇게하면 시스템이 자원을 절약 할 수 있습니다. 사이트를 항상로드해야하는 경우 표준 모드의 사이트에 대해 항상 켜기 설정을 활성화 할 수 있습니다. Always On (항상 켜짐)이 비활성화 된 경우 지속적인 웹 작업이 안정적으로 실행되지 않을 수 있으므로 사이트에서 연속 웹 작업을 실행하는 경우 항상 켜기를 활성화해야합니다.

관련 문제