2

私は2つのサーバーを持っています。基本的に、サーバー #1は 1 日を通してスクリプトを実行します。それが完了したら、サーバー #2に通知を送信して他のスクリプトを実行させる必要があります。

私は現在、Amazon AWS ツールと Python を使用しているので、誰かがシンプルで安全で簡単にプログラムできる方法を推奨できるかどうか疑問に思っていました。

  • スクリプトの実行が終了したときにサーバー #1 にフラグを設定する
  • サーバー #2 からこのフラグをポーリングする
  • フラグがアクティブなときにサーバー #2 でスクリプトを実行する
  • サーバー #2 でのスクリプトの実行が終了したら、サーバー #1 からフラグを削除します。

Amazon SNS または SQS を使用する必要がありますか? あるいは、これらはどちらも悪い選択ですか? もしそうなら、より良いものをお勧めできますか? すでに boto をインストールしており、使いやすさが気に入っているため、AWS ツールに傾倒しています。

4

2 に答える 2

1

これについては、AWS Simple Workflow Service を検討することを検討してください。SWF を使用すると、さまざまなマシン間でワークフロー タイプのアクティビティを簡単に調整できます。

http://aws.amazon.com/swf/

于 2013-01-24T17:08:36.613 に答える
1

サーバー #1が cron を介してスクリプトを実行していると仮定すると、ssh を使用してサーバー #2をリモートで変更できない理由はないはずです。Elastic-IP アドレスを使用すると、帯域幅の使用量としてカウントされない可能性があると思います。

それがなければ、SNSを使います。モデルは代わりに次のようになります。

  • サーバー #1 がサーバー #2 に通知 (スクリプトの開始)
  • サーバー #1 がスクリプトの実行を開始します
  • (オプション) サーバー #1 がサーバー #2 に進行状況を通知する
  • サーバー #1 がサーバー #2 (スクリプトの完了) に通知し、サーバー #2 のスクリプトを開始します
  • サーバー #2 は、完了時にサーバー #1 に通知します

この場合、通知を受け入れるためにある種の単純な Web サーバーをセットアップします。最も安全なオプションではありませんが、単純な CGI スクリプトで十分です。

2 つの多数のスクリプトが同時に実行されようとしている場合にのみ、SQS を取り上げます。「サーバー #1 のすべて、次にサーバー #2」のようにチャンクしている場合は、実際には必要ないレベルです。

于 2013-01-24T11:27:23.877 に答える