デーモンプロセス:メッセージの受信 - >バックグラウンドコマンドの実行 - >同時に実行されるジョブ数の管理?

デーモンプロセス:メッセージの受信 - >バックグラウンドコマンドの実行 - >同時に実行されるジョブ数の管理?

バックグラウンドで実行される次のUnixプログラム(デーモン)を見つけます。

  1. 任意(JSON)メッセージを受信できます。
  2. メッセージを受信した後、指定されたコマンドを実行します。
  3. 一度に実行できるこのプロセスのインスタンス数を選択的に制限できます。
  4. UPPERlimitより多くのメッセージが受信されると、キューに追加されます。

何か存在しますか?私はあまりにも多くを要求しているのだろうか?可能であれば、カスタマイズされたbashソリューションも気に入らない。

私はRabbitmq/beanstalk/gearmanのようなキューイングシステムを調べました。私の要件に合わないようです...

タイ語

答え1

伝統的に、イントラネット(8).ほとんどのLinuxディストリビューションパッケージシネット

答え2

何を探しているのかわかりませんが、ポートsocatでリッスンする簡単なサービスを構築し、すべての接続でシェルスクリプトを実行することができます。最大同時接続数を制限できます。たとえば、./myscript以下を含むbashスクリプトを作成します。

#!/bin/bash
read message
echo "hello. got $message"
sleep 10
echo "bye"

次に、ポート10005から開始socat(最大2つのサブプロセス)してスクリプトを実行します。

socat TCP4-LISTEN:10005,reuseaddr,fork,max-children=2 SYSTEM:./myscript

これで、必要なネットワークツールを使用してこのポートに接続し、スクリプトと対話できます。 bashの組み込み/dev/tcp/機能を使用してポートに接続すると、次のように十分です。

(echo "$(date) my message"; cat -n >&2) <>/dev/tcp/localhost/10005 >&0 &

このコマンドを複数回実行すると、2つだけ実行され、残りはキューに追加されます。一般的な出力は

1  hello. got Wed May 11 17:33:19 CEST 2016 my message
2  bye

関連情報