2012-01-06 8 views
0

Azure BLOBにファイルを書き込むPHPスクリプトがあります。ファイルがアップロードされると、Azureのロジックが計算を実行し、結果をBlobに配置します。完了すると、Azure Queueにメッセージが出力されます。AzurePHP - Azureキューのポーリング

私は、結果をダウンロードする準備ができていることを示す特定のメッセージを探して、キューをポーリングするPHPでコードを書こうとしています。どのようにこれにアプローチしますか?

答えて

2

私はあなたの問題に対する可能な解決策として、以下を参照してくださいPHPでいることを行うための唯一の可能な方法:

  1. メッセージのキューをチェックする小さなPHPファイルを作成し、もしあれば、それらを処理します。一度に1つのメッセージのみを取得します。処理後にメッセージを削除することを忘れないでください。メッセージを取得するときは、処理に十分な時間がかかるように適切なタイムアウトで取得します。
  2. バッチファイル(.BATまたは.CMD)すべてのNを実行するためのstartup taskのconfigure Windows Task Scheduler
  3. あなたのphpファイルへのパスを提供するphp.exeのバイナリを呼び出す小さな.batファイル(または.CMD)ファイルを作成します。秒/分

これが役に立ちます。

追加のヘルプが必要な場合はコメントを追加し、コードサンプルを提供しようとします。すべてはかなり簡単です。

+0

素敵な、ありがとう。これはLAMPスタック(これは私が全く新しいです)にあります - これで作業が簡単になりますか?どんなポインタも素晴らしいでしょう。 – 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でも可能です。キューを処理するPHPスクリプトの最初の行に、

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

のような名前を付ける必要があります。

これは、2分ごとにスクリプトを実行するためのcrontabの設定例ラインです:hereから撮影

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

+0

ああ、PHPコードがLAMPスタックにあることを意味し、Azureでワーカー・ロールを呼び出していました。だから、私はcronがまさに必要なものだと思う。私はあなたの助けに感謝します :)。 – SB2055

関連する問題