2012-01-06 39 views
0

我有一個將文件寫入Azure Blob的PHP腳本。文件上傳後,Azure中的邏輯會執行計算,然後將結果放入Blob中。完成後,會將消息放入Azure隊列中。AzurePHP - 輪詢一個Azure隊列

我試圖寫在PHP代碼輪詢隊列,尋找一個特定的消息,指示結果準備下載。你會如何處理這個問題?

回答

2

這樣做的唯一可行的辦法是用PHP,我看到下面儘可能解決您的問題:

  1. 創建一個小的PHP文件,檢查隊列的消息,如果任何處理它們。一次只能檢索一條消息。處理後不要忘記刪除該消息。當檢索消息時,請在適當的超時時間內獲取消息,以便有足夠的時間進行處理。
  2. 創建一個小蝙蝠(或.cmd)文件調用php.exe的二進制文件提供的路徑,你的PHP文件
  3. startup task配置Windows Task Scheduler執行批處理文件(.bat或.cmd)每N秒/分

希望這有助於!

如果您需要任何其他幫助,請添加註釋,我會嘗試提供代碼示例。一切都很平凡。

+0

很好,謝謝。這將是一個LAMP堆棧(我完全是新手) - 這會讓事情變得更簡單嗎?任何指針都會很棒。 – SB2055 2012-01-09 18:47:12

1

據我所知,Linux,MySQL,Apache,PHP的LAMP stnads。目前,Linux無法在Windows Azure中運行。

但是,如果你不是在談論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腳本的第一行處理隊列。

這是一個示例配置行的crontab來執行你的腳本,每2分鐘:從here兩者

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

+0

啊,我的意思是PHP代碼將放在LAMP堆棧上,調用Azure中的一個工作角色。所以這聽起來像cron正是我所需要的。我感謝您的幫助 :)。 – SB2055 2012-01-11 15:55:45