2016-10-20 8 views
3

Cloud Services 프로젝트가 있으며 작업자 역할이 설정되어 있습니다. 직원 역할에서 특정 시간에 작업을 수행하고 특정 시간에 서비스 대기열에 메시지를 넣습니다.Azure WebJobs/Azure 기능을 사용하여 서비스 대기열에서 메시지를 예약 하시겠습니까?

여러 작업자 역할을 설정하고 실행 중이면 메시지가 여러 번 예약되고 한 번에 하나의 작업자 역할 만 작업을 수행하도록 차단을 설정해야합니다.

대신 Azure WebJobs 또는 Azure Functions를 사용하고 싶습니다. Azure WebJob/Functions에서 메시지를 예약하게하고 작업자 역할은 특정 시간에 메시지를 읽고 실행할 수 있습니다.

이 시나리오에서 가장 좋은 방법이 무엇인지 알고 싶다면 어떻게 Azure Webjobs 또는 Function을 사용하여이 작업을 수행 할 수 있습니까? Microsoft가 제공하는 리소스가 명확하지 않기 때문에 내가 볼 수있는 예제 나 리소스가 있습니까? 만약 내가 제대로 이해하고

답변

4

시나리오는 다음과 같습니다 1. 작업이 특정 시간에 깨어나서 2 메시지 큐 3에서 포착되고 처리 큐에서 메시지의 무리를 둔다. 문제는 여러 작업자 역할이있을 때 스케줄러가 두 번 이상 실행된다는 것입니다. 스케쥴러에서 실행되는 Azure 기능을 설치하는 것보다 쉬운 경우, 메시지를 대기열에 넣은 다음 다른 Azure 기능으로 메시지를 선택하십시오. Azure Functions 동적 호스팅 계획을 사용하면 대기열 수신기 기능에 대한 자동 크기 조정 기능을 사용할 수 있습니다. Azure 관리 포털의 Azure Functions UX에는이 시나리오에 대한 템플릿이 있으며 C# 또는 node.js를 사용할 수 있습니다.

+0

예, 이해했습니다. Azure Schedular를 사용하여 대기열에 메시지를 배치하고 Azure 함수, WebJobs 또는 WorkerRole 중 하나를 사용하여 메시지를 처리 ​​할 수 ​​있음을 발견했습니다. 어떤 자원을 가장 효율적으로 사용할 수 있는지 확실하지 않은가요? – chillax786

+2

Dynamic Hosting 계획의 기능은 매우 관대 한 무료 교부금으로 실행 당 지불이므로 가장 비용 효과적 일 것입니다. WebJobs \ WebRole은 이미 실행중인 경우에도 비용이 많이 들지만 다른 자산 (Azure Web Apps) 또는 클라우드 서비스를 사용하여 대기열 처리를 실행할 수도 있습니다 (다른 응용 프로그램의 속도를 늦추지는 않는다고 가정). –

관련 문제