4

Erlang と RabbitMQ をインストールしました。

.\rabbitmqctl.bat ステータス

[...] {disk_free_limit,1000000000}, {disk_free,2010} [...]

なぜ2010年があるのですか?このドライブには 143GB の空き容量があります。このため、RabbitMQ ログに次のエラーが記録されています。

=INFO REPORT==== 17-Jun-2013::17:11:09 === ディスクの空き容量を 1000MB に設定

=INFO REPORT==== 17-Jun-2013::17:11:09 === ディスクの空き容量が不足しています。空きバイト:2010 制限:1000000000

=警告レポート==== 17-Jun-2013::17:11:09 === ノード「rabbit@USER-PC」に設定されたディスク リソース制限アラーム。


* このアラームが解除されるまで、パブリッシャーはブロックされます *


どうすれば手動で変更できますか? Windows 7 を使用しています。

4

1 に答える 1

3

私は同じ問題を抱えており、根本的な原因に到達したようです。

Rabbit はos:cmd("dir /-C /W \"" ++ Dir ++ [$]") ここで dir を実行し、ディスク ドライブの空き容量を取得します。

しかし... cmd.exeをラップするClink( http://code.google.com/p/clink )がインストールされています。

cmd 出力の Rabbit の解析はかなり素朴で、最後の行にあるディスクの空き容量に依存しています。

parse_free_win32(CommandResult) ->
   LastLine = lists:last(string:tokens(CommandResult, "\r\n")),
   {match, [Free]} = re:run(lists:reverse(LastLine), "(\\d+)",
                            [{capture, all_but_first, list}]),
   list_to_integer(lists:reverse(Free)).

私のマシンで erl でコマンドを実行するos:cmd("dir /-C /W \"" ++ Dir ++ [$"])と、ライセンス テキストがコマンド出力の最後に追加され (Clink のため)、解析コードは、実際に使用可能なディスク容量ではなく、著作権通知の最後の年を取得します。

呼び出されるコマンドの結果にも影響を与える同様のものがインストールされていると思います。erlang プロンプトで実行Result = os:cmd("dir /-C /W <your dir>").すると、良いアイデアが得られるはずです。

于 2013-07-30T10:35:51.120 に答える