0

IIS (7.5、Windows Server 2008 R2) を介してホストされているサイトがあります。サイト自体は Django (Python) をベースにしており、非同期タスク処理には Celery を使用しています。Celery は、タスク処理の前に開始する必要があるいくつかのもの (celeryd、celerycam、celerybeat) を開始するサービスを作成しました。サービスコントロールパネルで自動的に開始するように設定されています。

私が見つけたのは、サーバーの再起動 (自動更新など) の後、Celery サービスが開始されていないか、タイミングに問題があり、それに依存するサイトで利用できないことです。これらが機能しないとサイトは基本的に役に立たないため、サイトが利用可能になる前にそれらが実行されていることを確認する方法を見つける必要があります.

すべての IIS をこのサービスに依存させることは避けたいと考えています。問題の1つのサイトだけです(サービスを必要としない別のポートでホストされている他のサイトがいくつかあります)。

4

1 に答える 1

0

私の意見では、最善の解決策は、アプリケーションを変更して、Celery サービスに接続できない場合にソフトに失敗するようにすることです。つまり、ユーザーに有益なエラー メッセージを表示し、再試行するオプションを提供します。

サービスの開始順序に依存させるのは悪い設計です。Celery サービスが何らかの理由で失敗した場合はどうなりますか? ちなみに、データベース接続/クエリについても同じことが言えます。コードは常に失敗/エラーを適切に処理する必要があります。

于 2012-04-20T11:27:38.010 に答える