2011-11-14 1 views
2

私はAzureで明るいバックグラウンド処理を行う予定です。私はすでにWebロールを稼働させており、そのために専用の作業者ロールを使用する(そして支払う必要がない)ために同じロールを使用したいと考えています。Azure:Webとワーカーの役割を結合する:App pool recycle

私は単にRoleEntryPointから派生WebRoleクラス、中Run()をオーバーライドし、そこに私の「貧乏人のスケジューリング」を実装することができます読んだことがあります。キューからメッセージを定期的に取得して処理する必要があります。

私の質問は次のとおりです。WebRoleは、独自のプロセスやスレッドで実行されますか、さらに重要なのは、アプリケーションプール/アプリケーションドメインがリサイクルされるときにWebRoleとどうなりますか?

答えて

2

フルIISモード(1.3以降のSDKで使用可能)で実行している場合、RoleEntryPointとIISは異なるプロセスにあります。 ServiceDefinitionに<Sites>要素がある場合、完全IISモードを使用していることがわかります。

IISは実際には自分のappPoolのようにw3wp.exeで(あなたが通常と同じように)あなたのWebサイトを実行します。 RoleEntryPointコードは完全に異なるプロセスによって起動されて親子化されているため、それらの間には結びつきがありません(衝突すると衝突することはありません)。

+2

まあ、何も興味深いことは、その実行は、このフォルダ内のあなたのアセンブリのコピーで呼ばれています最後のカッコ内の節はあまり真実ではありません。 RoleEntryPointがクラッシュすると、Windows Azureによってロールインスタンスが再起動され、IIS Webサイトが再起動します。 – smarx

+0

@smarx - 良い点。逆のケース、すなわちウェブサイトのクラッシュをもっと考えていました。 – dunnry

+1

さらに、「アプリケーションプール/アプリケーションドメインがリサイクルされたときにWebRoleがどうなるか」という質問に対して、AppPoolがリサイクルされてもWebRoleには何も起こりません。 – astaykov

2

@ dunnryの回答に追加するには、

e:\approot\bin 

IISは、このフォルダ内のアプリケーションの別のコピーを指しているのに対し:

e:\siteroot\0 
関連する問題