我刚刚安装了Erlang和RabbitMQ。
。\ rabbitmqctl.bat status
[...] {disk_free_limit,1000000000},{disk_free,2010} [...]
为什么会有2010年?我在这个驱动器上有143GB的免费空间。因此,我在RabbitMQ日志中遇到以下错误:
= INFO REPORT ==== 2013年6月17日:: 17:11:09 ===磁盘空闲限制设置为1000MB
= INFO REPORT ==== 2013年6月17日:: 17:11:09 ===磁盘空间不足。自由字节数:2010限制:1000000000
=警告报告==== 2013年6月17日:: 17:11:09 ===在节点'rabbit @ USER-PC'上设置磁盘资源限制警报。
*发布商将被阻止,直到此警报清除*
如何手动更改?我正在使用Windows 7。
答案 0 :(得分:3)
我有同样的问题,我似乎已经找到了根本原因。
Rabbit使用os:cmd("dir /-C /W \"" ++ Dir ++ [$]")
here运行dir并获取磁盘驱动器上的可用空间。
但是......我安装了Clink(http://code.google.com/p/clink),它包装了cmd.exe。
Rabbit解析cmd输出相当天真,并且依赖于最后一行的磁盘空间:
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>").
应该会给你一个好主意。