2013-12-23 2 views
2

현재 Windows 예약 된 작업을 실행하는 AWS의 Windows 인스턴스에서 .net 스크립트를 실행하여 요일 주문을 처리합니다.AWS를 사용하는 예약 된 작업

저는 최근에 ELB를 사용하여 몇 가지 인스턴스가로드 밸런싱되었습니다.

질문은 예약 된 작업을 설정하여 모든 인스턴스가 실행되지 않도록하는 방법입니다. Ive는 AWS에서 OpsWorks, SimpleWorkFlow 등을 들여다 보았지만이 비교적 간단한 작업에 초점을 맞추어야하는 것은 너무 혼란 스럽습니다.

감사

+0

HI Raj, 나는 당신의 질문을 검토하고 있었고, 나는 현재 공격당했습니다. 나는 아마존에 asp.net 페이지를 가지고있을 것이고, 나는 이메일을 보내기 위해 아마존에서 매 시간마다 전화 할 필요가 있습니다. 어떻게 할 수 있습니까? 계속 진행해? 나는 이것에 관해 열린 질문을 가지고있다, 당신은 나에게 거기에서 대답 할 수있다. 감사. –

답변

1

당신은 아마존 SWF를 사용할 수 있지만 그/복잡한 과잉 보인다.

Amazon 파이프 라인이 있습니다. 아마도 옳은 대답이지만 설정을 읽기 위해서는 약간의 지식이 필요합니다.

간단한 작업은 모든 상자에 작업을 예약하고 데이터베이스에 승자를 선언하게하는 것입니다.

가) DB에서 처리되지 않은 주문을 "잠궈"처리 할 수 ​​있습니다. 단일 거래를 잠그는 한, 다른 근로자는 처리 할 0 개 주문 (또는 일부 신규 주문)을 받게됩니다.

B) 작업이 잠길 단일 행으로 특수 테이블을 작성할 수 있습니다. "work_table set worker = 'mybox', work_start = now() 같은 작업자 = ''"를 업데이트하십시오.

죽어가는 작업자 상자에 견고하게하려면 더 복잡한 규칙을 만들어야합니다. 작업자가 작업 완료를 표시 할 때까지 기다릴 수 있습니다. 일자리가 적시에 완료되지 않으면, 첫 번째 노동자가 죽었다고 가정하고 자물쇠를 훔쳐서 스스로 일을 수행하려고 할 수 있습니다.

데이터베이스가없는 경우 항상 SDB (Simple DB) 또는 DynamoDB를 사용할 수 있습니다. DB를 하루에 몇 번 치는 것은 자유 계층에 꼭 맞을 것입니다.

모든 일이 올바르게 수행되는 경우 20-50 줄의 코드가됩니다.

+0

예 AWS 데이터 파이프 라인을 살펴 보았지만 스크립트/URL을 실행하지 못했습니다. 데이터베이스 작업, 백업 등에 더 관련이있는 것으로 보였습니다.이 문제를 해결하는 데 도움이되는 온라인 도움말/자습서가 거의없는 것으로 보입니다. 당신이 제안하는 데이터베이스 경로는 공정한 옵션이며 다음 주에 AWS에 대한 도움이 더 이상 없다면 앞으로 나아갈 경로 일 것입니다! – Raj

1

하루에 한 번 워크 플로를 실행해야한다고 가정하면 날짜가 포함 된 워크 플로 ID를 생성 할 수 있으므로 하나의 인스턴스 만 트리거됩니다.

n 개의 인스턴스가 필요하면 하위 워크 플로를 생성하는 부모 워크 플로 (워크 플로 ID로 보장되는 싱글 톤)를 가질 수 있습니다.