2012-01-06 4 views
0

Azure Blob에 파일을 쓰는 PHP 스크립트가 있습니다. 일단 파일이 업로드되면, Azure의 논리는 계산을 수행 한 다음 결과를 Blob에 배치합니다. 완료되면 Azure Queue로 메시지가 보내집니다.AzurePHP - Azure 대기열 폴링

나는 결과를 다운로드 할 준비가되었음을 나타내는 특정 메시지를 찾기 위해 Queue를 폴링하는 PHP 코드를 작성하려고합니다. 어떻게이 접근합니까?

답변

2

PHP와 나는 당신의 문제에 대한 해결 방안으로 다음을 참조하는 것이 일의 유일한 가능한 방법 :

  1. 는 메시지 큐를 확인하는 작은 PHP 파일을 생성하고 (있는 경우)를 처리합니다. 한 번에 하나의 메시지 만 검색하십시오. 처리 후 메시지를 삭제하는 것을 잊지 마십시오. 메시지를 검색 할 때 처리하기에 충분한 시간을 갖도록 적절한 시간 초과를 가져옵니다.
  2. 작은 박쥐 만들기 (또는 .CMD) 배치 파일을 실행하기 startup task 구성 Windows Task Scheduler에서 당신의 PHP 파일에
  3. 을 경로를 제공하는이 php.exe 바이너리 호출 (.bat 인 또는 .CMD) 모든 N 파일 초/분

희망이 있습니다.

추가 도움이 필요하면 의견을 추가하십시오. 코드 샘플을 제공해 드리겠습니다. 모든 것은 꽤 사소한 것입니다.

+0

감사합니다. 이것은 램프 스택 (이것은 완전히 새로운 것입니다)에있을 것입니다 - 이것은 일을 더 쉽게 만들까요? 어떤 포인터가 굉장합니다. – SB2055

1

필자가 아는 한, LAMP는 Linux, MySQL, Apache, PHP에서 stnads입니다. 현재 Windows Azure에서 Linux를 실행하는 것은 불가능합니다.

하지만 Windows Azure Compute에 대해 PHP와 Linux 만 실행하는 곳이 아니라면 더 쉽고 정확하게 동일해야합니다. 유일한 차이점은 cron (또는 here) 또는 at을 사용하여 PHP 스크립트의 실행을 예약해야한다는 것입니다.

Linux의 경우에도 make your php script executable by adding a special processor command on the first line을 사용할 수 있습니다. 다음과 같이 배치해야합니다 :

#!/path/to/your/php/binary/php 

큐를 처리하는 PHP 스크립트의 첫 번째 줄에 넣어야합니다.

*/2 * * * * /path/to/your/php/script/process_queue.php 

here에서 촬영 :

은 crontab을이 스크립트를 2 분마다 실행하기위한 샘플 구성 라인입니다.

+0

Ah, 저는 PHP 코드가 LAMP 스택에있을 것이며, Azure에서 worker 역할을 호출한다는 것을 의미했습니다. 그래서 그것은 cron이 정확히 내가 필요한 것 같은데. 도와 주셔서 감사합니다 :). – SB2055

관련 문제