1

システムのセットアップにスタートアップ タスクが使用されることを理解しています。たとえば、コードが Python で記述されている場合、スタートアップ タスクを追加して Python をインストールできます。しかし、これは ProgramEntryPoint バッチ スクリプトでも実行できないのでしょうか。違いは何ですか?

4

3 に答える 3

5

ProgramEntryPoint を使用する場合、スタートアップ タスクを使用する理由はないようです。実際、すべてのロジックを同じバッチ ファイルに含めることができます。

.NET WebRoles/WorkerRoles を使用すると、スタートアップ タスクがより便利になります。そこでは、コードを記述するか (ここで、他のバッチ ファイルを呼び出す単一のバッチ ファイルを再度呼び出すことができます)、またはスタートアップ タスクを使用するオプションしかありません。

しかし、メンテナンスの観点から見ると、インスタンスの構成とインストールに関係するすべてのタスクにスタートアップ タスクを使用する方がはるかにクリーンです。構成/インストールと実際のアプリケーションの間に明確な線を引きます。実際には、これを関心の分離として見ることができます (これは、プロジェクトの他の開発者や新しい開発者にとって理解しやすいでしょう)。

それに加えて、タスクを使用する場合、セキュリティの観点から重要な可能性があるさまざまなコンテキスト(制限付き/昇格) でタスクを実行できることを知っておく必要があります。また、タスクにはさまざまな種類(シンプル、バッ​​クグラウンド、フォアグラウンド) があり、さまざまなシナリオ (サイトに常に ping を実行するバックグラウンド アプリなど) で使用できます。タスクを使用しない場合は、これらすべてを自分で処理する必要がある場合があります。

スタートアップ タスクの詳細については、次のブログ記事を参照してください: Windows Azure でのスタートアップ タスクの使用の詳細な概要

于 2012-07-27T10:48:54.273 に答える
0

サンドリーノからのすばらしい答え。簡単に言えば、ロールが開始する前にコードを実行する (または実行を開始する) 場合は、スタートアップ タスクを使用します。それが制約でない場合は、Role の OnStart メソッドからいつでも任意のプロセス (バッチ スクリプトを含む) を実行できます。過去にスタートアップ タスクを使用した 1 つのケースは、NewRelic 監視エージェントのインストールです。実際のアプリが開始される前に、実行してアプリのプロファイルを作成したかったのです。

于 2012-07-29T01:18:04.833 に答える