2

最終的に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

これに対処する方法についてのアイデアはありますか?

4

2 に答える 2

2

semparallel に付属のユーティリティを使用できます。

/path/to/dropfolder IN_CLOSE_WRITE sem --gnu --id myjobname -j 4 /path/to/resourceintensivescript.sh $@/$#
于 2013-08-07T21:34:34.847 に答える