2017-09-13 3 views
1

함수 바인딩에서 "카디널리티"로 많은 항목을 선택하면 올바르게 작동합니다.EventHub 더 많은 타임 아웃을 유발하는 함수 카디널리티로 트리거

{ 
    "bindings": [ 
    { 
     "type": "eventHubTrigger", 
     "name": "eventHubMessages", 
     "direction": "in", 
     "path": "sessions", 
     "connection": "connectionstring", 
     "cardinality": "many", 
     "consumerGroup": "group1" 
    } 
    ], 
    "disabled": false 
} 

기능 바인딩에서 "하나"를 선택하면 더 높은 시간 초과가 발생합니다. 내가 콘솔에서 볼 때

"cardinality": "one", 

, 나는

2017-09-12T19:37:49.645 Function started (Id=f0ef1cd5-8331-448e-86c6-84c745bbab13) 
2017-09-12T19:37:49.956 Function started (Id=26629395-54b8-4f83-9852-b3d55307318b) 

은 카디 "다"단일 스레드이며, "하나"평행 처리지고, 여러 기능이 시작이있다 볼 수 있었다. 병렬 처리에는 아무런 문제가 없지만 시간 제한이 길어집니다. 또는 이것은 함수 응용 프로그램의 핵심 문제입니까?

여기에 총 250에 가까운, 내가 볼 수 있었다 "기능 시작"확장 성 매니저는 데 문제

?

+0

나는 당신이 (즉, 매개 변수로 배열을 받아) 함수에 대한 비즈니스 프로세스 및 시간 제한으로 – Mikhail

+0

5 분으로 설정 한 함수 호출에서 여러 이벤트를 처리 할 때 "많은"을 사용한다고 생각합니다. 나는 함수가 부분적으로 succedd되고 부분적으로 실패하는 것을 원하지 않는다. 하나씩 처리하면 성공률이 높아지고 실패율은 낮아 지므로 런타임이 길어집니다. 그러나 이러한 제한 시간 문제는 하나씩 처리하는 데 어려움을줍니다. – Kannaiyan

답변

0

리티 '하나'는 EVENTDATA 페이로드 당 하나의 함수 호출을 얻을 수 있다는 것을 의미한다. 'Many'는 호출 당 EventData []의 전체 일괄 처리를 가져 오는 것을 의미합니다. 코드의 정확성에 대해 추론 할 때 위키에 좀 더 세부 https://github.com/Azure/azure-webjobs-sdk/wiki/EventHub-support

에있다, 당신이해야 그 함수 호출 병렬 및 그 배치 크기 실행이 무작위 수 (당신은 매우 명시 적으로 설정하지 않는 한) . 단일 배치는 여전히 연속적으로 실행될 가능성이 높습니다.

+0

메모 주셔서 감사합니다. 병렬로 실행되고 있습니까? 그렇다면 Azure는 기능/AdJob에 확장 성 문제가 있습니다. 자원이 필요할 때 더 많은 인스턴스를 추가하는 것을 알지 못합니다. 이 함수의 콜드 스타트는 너무 높지 않으므로 새로운 인스턴스를 만들면 더 많은 시간 동안 호출자가 발생하지 않아야합니다. – Kannaiyan

+0

@Kannaiyan, 몇 가지 후속 질문이 있습니다. 1) 기능 코드로 사용하는 언어는 무엇입니까? 2) 시간 초과가 어떻게되고 있다고 판단합니까? 동일한 메시지가 다시 처리되는 것을보고 있습니까? 즉, 검사 점이 발생하지 않는다고 말할 수 있습니까? 콘솔 로깅 문제가 아닌지 확인하고 싶습니다. –

+0

필자는 필자의 대답을 업데이트하여 * 병렬로 실행할 수 있음을 확인했습니다 (이는 정확성의 관점에서 중요합니다). –

관련 문제