最終的にCentOS(最新)仮想マシンに常駐するプロセスの開発に取り組んでおり、Ubuntu 12.04 LTSで開発しています...
そのため、ドロップ フォルダーを監視するように incron を設定してIN_CLOSE_WRITE
、ファイルがドロップ フォルダーに書き込まれると、かなりリソースを集中的に使用するスクリプトがファイル (画像、imagemagick) に対して実行されるようにします。これはすべて正常に機能します。一度にドロップされるファイルが多すぎる場合を除きます。私が言ったように、スクリプトはかなりリソース集約型であり、4 つ以上のインスタンスが同時に実行されると、私の開発マシンはひざまずきます (最終的な仮想マシンはより強力になりますが、おそらく数百のファイルが削除されるインスタンスを予見します)一気に!)
危険な incrontab:
/path/to/dropfolder IN_CLOSE_WRITE bash /path/to/resourceintensivescript.sh $@/$#
問題は、incrond によって生成されるジョブの数を制限する方法です。gnu parallel を使用してみましたが、それを機能させる方法がわかりませんでした...
例えば:
/path/to/dropfolder IN_CLOSE_WRITE parallel --gnu -j 4 bash /path/to/resourceintensivescript.sh $@/$#
何もしないようです:/
と:
/path/to/dropfolder IN_CLOSE_WRITE;IN_NO_LOOP bash /path/to/resourceintensivescript.sh $@/$#
ファイルが不足してしまいます:P
これに対処する方法についてのアイデアはありますか?