小编Ant*_*iev的帖子

在PostgreSQL中使用继承

对于在PostgreSQL中使用继承经验的人:是否值得使用它,或者最好不要使用它?你会在哪种情况下使用它?

说实话,我不完全理解关系模型和OO模型之间的区别......

postgresql inheritance

9
推荐指数
2
解决办法
2129
查看次数

在linux上的erlang shell中配置密钥

所有!是否可以在Linux下的Erlang shell中配置Home,End,Del键.

在我按Home的那一刻,它产生'H',当结束 - 'F'时......

linux erlang

8
推荐指数
1
解决办法
774
查看次数

Erlang:分布式应用程序奇怪的行为

我用分布式的erlang应用程序付款.

配置和想法来自:
http:/www.erlang.org/doc/pdf/otp-system-documentation.pdf 9.9.分布式应用

  • 我们有3个节点:n1 @ a2-X201,n2 @ a2-X201,n3 @ a2-X201
  • 我们有应用程序wd做一些有用的工作:)

配置文件:

  • wd1.config - 对于第一个节点:
      [{kernel,
          [{distributed,[{wd,5000,['n1@a2-X201',{'n2@a2-X201','n3@a2-X201'}]}]},
           {sync_nodes_mandatory,['n2@a2-X201','n3@a2-X201']},
           {sync_nodes_timeout,5000}
        ]}
      ,{sasl, [
      %% All reports go to this file
      {sasl_error_logger,{file,"/tmp/wd_n1.log"}}
      ]
    }].
  • wd2.config为第二个:
    [{kernel,
        [{distributed,[{wd,5000,['n1@a2-X201',{'n2@a2-X201','n3@a2-X201'}]}]},
         {sync_nodes_mandatory,['n1@a2-X201','n3@a2-X201']},
         {sync_nodes_timeout,5000}
         ]
     }
    ,{sasl, [
        %% All reports go to this file
        {sasl_error_logger,{file,"/tmp/wd_n2.log"}}
    ]
    }].

  • 对于节点n3看起来类似.

现在在3个独立的终端启动erlang:

  • erl -sname n1 @ a2-X201 -config wd1 -pa $ WD_EBIN_PATH -boot start_sasl
  • erl -sname n2 @ a2-X201 -config wd2 -pa $ WD_EBIN_PATH -boot start_sasl …

erlang erlang-otp

8
推荐指数
1
解决办法
964
查看次数

分布式erlang安全性如何?

我希望有2个独立的erlang节点可以相互通信:

所以节点a@myhost将能够发送消息b@myhost.

是否有限制节点的任何方式a@myhost,所以只能从一个功能secure_module可以叫上b@myhost

它应该是这样的:

a@myhost> rpc:call(b@myhost,secure_module,do,[A,B,C]) returns  {ok,Result}
Run Code Online (Sandbox Code Playgroud)

和所有其他电话

a@myhost> rpc:call(b@myhost,Modue,Func,Args)  return {error, Reason}
Run Code Online (Sandbox Code Playgroud)

其中一个选择是使用ZeroMQ库来建立节点之间的通信,但是如果可以使用一些标准的Erlang函数/模块来完成它会更好吗?

erlang

6
推荐指数
1
解决办法
597
查看次数

Erlang:创建filewatcher

我必须在Erlang中实现文件监视器功能:应该有一个进程列出文件,如果特定目录,并在文件出现时执行某些操作.

我看看OTP.所以目前我有以下想法:1.创建将控制gen_servers的Supervisor(每个文件夹一个服务器)2.为我想要监视的每个文件夹创建WatchServer - gen_server.3.创建ProcessFileServer - 应该对文件执行某些操作的gen服务器)假设复制到不同的folder =

所以第一个问题:WatchServer不应该等待请求,它应该在预定义的时间间隔内生成一个.

目前我在init/1函数中创建了一个计时器,并在handle_info函数中处理on_timer事件.

现在问题:1.有更好的想法吗?2.如何通知ProcessFileServer找到的文件?它对我来说,单独创建WatchServers和ProcessServers会更方便,但在这种情况下我不知道向谁发送消息?

可能有一些类似的项目/库可用吗?

erlang

5
推荐指数
1
解决办法
2754
查看次数

Erlang OTP 21 如何禁用记录器控制台输出

根据 erlang 文档,可以仅为文件配置记录器:

来自Erlang 文档:

修改默认处理程序以打印到文件而不是 standard_io:

[{kernel,
[{logger,
  [{handler, default, logger_std_h,  % {handler, HandlerId, Module,Config}
    #{config => #{file => "log/erlang.log"}}}
]}]}].
Run Code Online (Sandbox Code Playgroud)

我的配置文件看起来像:

 [{kernel,[
  {logger_level, error},
  {logger,
    [{handler, default, logger_std_h,
      #{config => #{file => "log/erlang.log"}}}
    ]
   }
  ]}].
Run Code Online (Sandbox Code Playgroud)

io 与文档中的完全相同。日志级别设置为错误

当我使用reabar3 shell统计应用程序时,打印到控制台:

===> The rebar3 shell is a development tool; to deploy applications in production, consider using releases (http://www.rebar3.org/docs/releases)
2019-04-10T15:14:33.363287+02:00 info: application: syntax_tools, started_at: 'node@x201'
2019-04-10T15:14:33.371897+02:00 info: application: compiler, started_at: 'node@x201'
2019-04-10T15:14:33.379962+02:00 info: supervisor: {local,gr_sup}, started: …
Run Code Online (Sandbox Code Playgroud)

erlang erlang-otp

5
推荐指数
1
解决办法
698
查看次数

Erlang代码替换

我创建了一个简单的模块:

-module(check). 
-export([check/0]). 
check() ->
    Val = 1,
    io:format("Value = ~p~n",[Val]).
Run Code Online (Sandbox Code Playgroud)

编译的代码erlc.现在让我们运行Erlang:

Erlang R14B (erts-5.8.1) [source] [smp:4:4] [rq:4] [async-threads:0] [hipe] [kernel-poll:false]

Eshell V5.8.1  (abort with ^G)
1> check:check().
Value = 1
ok
Run Code Online (Sandbox Code Playgroud)

如果我修改代码,将Val更改为2,并使用erlc,我希望check:check将返回2,但事实并非如此:

2> check:check().
Value = 1
ok
Run Code Online (Sandbox Code Playgroud)

我们得到相同的结果.即使我重新启动shell.

如何在不杀死虚拟机的情况下强制Erlang重新加载模块?

compiler-construction erlang

3
推荐指数
1
解决办法
203
查看次数