문제

두 개의 작업자 역할과 웹 역할이없는 Azure 응용 프로그램을 구축하고 싶습니다. 작업자 역할이 처음 시작되면 역할 중 하나만 다음 시간에 수행하기를 원합니다.

  • 마스터 파일을 다운로드하고 구문 분석 한 다음 마스터 파일의 내용을 기반으로 여러 "child"작업을 Enqueue합니다.
  • 다음 날 실행하려면 단일 마스터 파일 다운로드 "child"작업을 Enqueue

그런 다음 각 "자식"작업은 작업 대기열이 소진 될 때까지 두 작업자 모두가 수행합니다. 모든 것을 "펌프 프라이밍"으로 생각하십시오.

웹 역할을 호출하여 큐에 수동으로 첫 번째 "마스터"작업을 추가하면 이런 종류의 일이 정말 쉽습니다.

이와 관련하여 어떤 도움을 주었을 것입니다!

감사.....

도움이 되었습니까?

해결책

한 가지 가능성 : 웹 역할을하는 대신 대기열을 직접로드하십시오. (이것은 자동으로 스핀 업을 위해 작업을 수행하고 다시 종료하려는 일종의 응용 프로그램 인 것 같습니다 ... 자동이면 큐로드를 자동화하는 것도 사소해야합니다.)

A (아마도) 더 나은 옵션 : 일종의 잠금 메커니즘을 사용하여 하나의 작업자 인스턴스 만 초기화 작업을 수행하는지 확인하십시오. 이를 수행하는 한 가지 방법은 대기열 (또는 테이블의 블로브 또는 엔터티)을 만드는 것입니다. 이미 존재하면 다른 인스턴스가 초기화를 처리합니다. Create가 성공하면이 인스턴스의 작업입니다.

초기화를 수행하는 인스턴스가 실패한 경우 자물쇠보다 임대를 사용하는 것이 항상 더 좋습니다. 타임 아웃 (예 : 타임 스탬프를 테이블 스토리지 또는 블로브의 메타 데이터 또는 대기열 이름으로 저장하는 것을 고려하십시오.).

다른 팁

우리는 똑같은 종류의 문제로 끝났습니다. 그래서 우리는 O/C 맵퍼 (클라우드에 물체). 기본적으로 두 가지 유형의 클라우드 서비스를 소개하려고합니다.

  1. 가능할 때마다 메시지를 소비하는 큐 서비스.
  2. 예정된 기준으로 작업을 트리거하는 예약 서비스.

그런 다음 다른 사람들이 제안한 것처럼 클라우드에서 사용하는 것을 선호합니다. 임차권임시 하드웨어 (또는 인프라) 문제로 인해 클라우드 앱이 영원히 동결되도록 피하기 위해 잠금 대신 s.

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