50 초마다 데이터를 데이터베이스에 기록해야합니다. 백그라운드에서 실행중인 Windows 서비스와 비슷하며 자동으로 작업을 수행합니다. 필자가 이전에 삽입 한 적은 양의 데이터를 메모리에 저장해야하기 때문에 시작 및 중지 옵션이 필요하지 않습니다. Windows Azure 또는 AWS를 사용할 때 가장 좋은 솔루션은 무엇입니까?Windows Azure에서 장기 실행 (또는 영원히) 작업
감사합니다.
50 초마다 데이터를 데이터베이스에 기록해야합니다. 백그라운드에서 실행중인 Windows 서비스와 비슷하며 자동으로 작업을 수행합니다. 필자가 이전에 삽입 한 적은 양의 데이터를 메모리에 저장해야하기 때문에 시작 및 중지 옵션이 필요하지 않습니다. Windows Azure 또는 AWS를 사용할 때 가장 좋은 솔루션은 무엇입니까?Windows Azure에서 장기 실행 (또는 영원히) 작업
감사합니다.
Windows Azure에서는 @Lucifure가 제안한대로 웹 또는 작업자 역할 (기본적으로 Windows 2008 Server R2 또는 SP2)을 선택하고 일부 유형의 시간 제한 이벤트를 가질 수 있습니다. 또한 Quartz.net과 같은 스케줄러를 실행하거나 Windows Azure 대기열 또는 서비스 버스 대기열을 활용하여 특정 시간에 메시지를 표시 할 수 있습니다. 그러나 주어진 역할 인스턴스에서 "영원한"작업을 수행 할 수 없습니다. 즉, VM 인스턴스가 주기적으로 재부팅됩니다 (예 : 매월 호스트 OS 유지 관리). 역할 종료를 사용하면 통지를 받게되며이 종료 통지는 Stopping()
또는 OnStop()
에 처리 할 수 있습니다. 인스턴스가 여러 개인 경우 스케줄러 또는 대기열을 사용하여 이벤트가 50 초마다 트리거되고 여러 인스턴스에서 처리되도록 할 수 있습니다 (단, 주어진 시간에 하나의 인스턴스 만 가능).
메모리 내 정보를 보존하려면 해당 정보를 캐시에 저장하는 것이 좋습니다. 다음과 같은 두 가지 선택 사항이 있습니다.
캐싱에 대한 자세한 내용은 here입니다.
Quartz.net 및 Windows Azure와 관련된 몇 가지 StackOverflow 답변이 있습니다 (예 : this one).
Windows Azure에서는이를 수행 할 수있는 작업자 역할을 사용할 수 있습니다. while 루프처럼 간단 할 수 있습니다.
소개를 위해이 기사를 사용해보십시오. http://www.c-sharpcorner.com/uploadfile/40e97e/windows-azu-creating-and-deploying-worker-role/
System.Threading.Timer를 설정하여 50 초마다 실행하고 이벤트가 발생할 때마다 작업을 수행 할 수 있습니다.