小编pol*_*per的帖子

ssl:发送erlang块

我正在使用从TCP套接字升级的SSL套接字.当我尝试使用ssl:send通过该套接字发送一些数据时,它会阻塞.我有底层TCP套接字的send_timeout选项.有人可以告诉我为什么ssl:发送挂起以及它的解决方案是什么?提前致谢.

erlang ssl block send

7
推荐指数
0
解决办法
449
查看次数

在 Intellij 中编译 Erlang

我尝试使用 Erlang 插件在 Intellij 中编译 erl 文件。编译一切都很好,但在输出/生产中,文件夹不会创建任何文件.beam,当我运行控制台时,我收到消息:

exception error: undefined function. 
Run Code Online (Sandbox Code Playgroud)

当我使用c("file").一切正常。为什么 Intellij 不创建.beam文件?

erlang intellij-idea beam erl

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

net_kernel:start 失败并显示 `{'EXIT',nodistribution}`

我遇到了一个问题,希望有人能帮助我。

我尝试开始net_kernel

net_kernel:start([test,shortnames]).
Run Code Online (Sandbox Code Playgroud)

但我遇到了这个错误:

{error,
    {{shutdown,
         {failed_to_start_child,net_kernel,{'EXIT',nodistribution}}},
     {child,undefined,net_sup_dynamic,
         {erl_distribution,start_link,[[test,shortnames]]},
         permanent,1000,supervisor,
         [erl_distribution]}}}

=INFO REPORT==== 23-Apr-2017::21:07:43 ===
Protocol: "inet_tcp": register/listen error: econnrefused
Run Code Online (Sandbox Code Playgroud)

惊人的提示是,当尝试开始时net_kernel

erl -sname test
Run Code Online (Sandbox Code Playgroud)

net_kernel 将成功启动

另一个惊人的提示是,在net_kernel操作系统启动并退出 erl shell 后至少启动一次后,第一种启动方式net_kernel将成功运行:|

( net_kernel:start([...]) )
Run Code Online (Sandbox Code Playgroud)

经过一番搜索,我发现 CouchBase 和 RabbitMQ-Server 和 Ejabberd 以及其他一些使用 erlang 的应用程序,报告了这个错误( nodistribution error )

erlang

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

如何更新存储在ets表中的元组中的数字?

假设我有一个ETS表所示:

I = ets:new(mytable, [named_table, set]).
ets:insert(I, {10,{10, 4 ,"description"}).
Run Code Online (Sandbox Code Playgroud)

我想更新的元素4使用ets:update_counter

我以其他方式尝试过,但找不到解决方案,例如:

ets:update_counter(I, 10 , {3,1}).

** exception error: bad argument
     in function  ets:update_counter/3
        called as ets:update_counter(mytable,10,{3,1})
Run Code Online (Sandbox Code Playgroud)

我想有结果为:

{10,{10, 5 ,"description"}
Run Code Online (Sandbox Code Playgroud)

erlang ets

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

Prometheus/Grafana Rate()...Y 轴的单位

我正在 Grafana 上绘制一个计数器。


rate(processed_work_items_total{job="MainWorker"}[1m])
Run Code Online (Sandbox Code Playgroud)

我在 Grafana 中没有得到预期的数字。

我想要的是每分钟处理的工作项目数。

我的查询有误吗?或 Y 轴的测量单位。我目前将其设置为操作数/分钟,并且它给了我一个非常小的数字。

grafana prometheus

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

如何在 Istio 中调试 EnvoyFilter?

我有下面的过滤器。

我正在检查网关的日志,看起来没有应用过滤器。

  1. 如何调试EnvoyFilter
  2. 在哪里可以查看每个请求应用了哪些过滤器?
apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
  name: proper-filter-name-here
  namespace: istio-system
spec:
  workloadSelector:
    labels:
      app: istio-ingressgateway
  configPatches:
    - applyTo: NETWORK_FILTER
      match:
        context: GATEWAY
        listener:
          filterChain:
            filter:
              name: "envoy.http_connection_manager"
      patch:
        operation: INSERT_BEFORE
        value:
          name: envoy.lua
          typed_config:
            "@type": "type.googleapis.com/envoy.config.filter.http.lua.v2.Lua"
            inlineCode: |
              function envoy_on_request(request_handle)
                 request_handle:logDebug("Hello World!")
              end
Run Code Online (Sandbox Code Playgroud)

debugging istio envoyproxy

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

在mnesia中限制某个键下记录数的惯用方法是什么?

我使用mnesia为用户存储数据,记录是一个结构像的包

{ username, field1, filed2, timestamp }
Run Code Online (Sandbox Code Playgroud)

为了不让数据库爆炸,我想对属于某个用户的记录数设置一个限制,比如说,如果一个用户的记录数达到500,那么在a之前删除时间戳最旧的记录插入新记录。

有没有一种有效的方法来做到这一点?

提前致谢。

erlang mnesia limit

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

为什么 Dialyzer 没有捕捉到这个简单的错误?

Dialyzer 不会发出此函数返回类型不一致的信号:

-spec myfun(integer()) -> zero | one.
myfun(0) -> zero;
myfun(1) -> one;
myfun(2) -> other_number.
Run Code Online (Sandbox Code Playgroud)

但它在最后一行的情况下检测到

myfun(_) -> other_number.
Run Code Online (Sandbox Code Playgroud)

为什么会这样?我相信以上应该是一个非常简单的案例。

谢谢

erlang dialyzer

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

为什么两个方法引用被编译到两个不同的地址?

我两次引用相同的方法,但引用不同。看这个例子:

import java.util.function.Consumer;

public class MethodRefTest {
    public static void main(String[] args) {
        new MethodRefTest();
    }

    public MethodRefTest() {
        Consumer<Integer> a = this::method;
        System.out.println(a);
        Consumer<Integer> b = this::method;
        System.out.println(b);
    }

    public void method(Integer value) {

    }
}
Run Code Online (Sandbox Code Playgroud)

输出是:

MethodRefTest$$Lambda$1/250421012@4c873330
MethodRefTest$$Lambda$2/295530567@776ec8df
Run Code Online (Sandbox Code Playgroud)

方法引用只不过是匿名类的语法糖吗?如果不是,我该怎么做才能始终获得相同的方法引用?(除了在字段中存储一次参考以供使用之外。)

(应用:我认为方法引用是观察者实现的一种更漂亮的方式。但是每次使用不同的引用,一旦添加观察者就不可能从可观察者中删除观察者。)

java functional-interface method-reference

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

JAR、Fat JAR、Executable JAR 的区别

JAR、Fat JAR 和可执行 JAR 之间有什么区别?它们是如何从命令行和 gradle.build 任务创建的(如果是 gradle 项目)?

除了上面提到的还有其他JAR吗?

java jar executable-jar

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