小编Val*_*rin的帖子

Elixir/Plug/Phoenix:调用暂停并不会阻止下游插件在测试期间被调用

如果我启动我的 phoenix 应用程序的一个实例,并通过请求点击它,我的插件将适当地停止。但是,在测试环境中执行相同操作时,halt 不会阻止下游插件被调用,这会导致我的测试失败。我认为问题可能来自我在测试期间调用路由器的方式。这是我正在使用的辅助函数,它是从 phoenix 框架本身的一个类似函数中大量借用的:

def call(router, verb, path, params \\ nil, headers \\ []) do
    add_headers(conn(verb, path, params), headers)
    |> Plug.Conn.fetch_params
    |> Plug.Parsers.call(parsers: [Plug.Parsers.JSON],
                    pass: ["*/*"],
                    json_decoder: Poison)
    |> router.call(router.init([]))
  end
Run Code Online (Sandbox Code Playgroud)

关于为什么像这样调用我的路由器会导致停止工作的任何想法?

编辑:所以我升级到 Phoenix 0.13.1 以便使用他们的新端点测试模块而不是我推出的助手。我会报告这是否解决了问题。

elixir phoenix-framework

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

与Elixir/Erlang同步执行Shell命令

我想执行一个(慢)python脚本,我希望我的Elixir进程阻塞,直到它收到脚本的所有输出.

是Elixir的System.cmd/3还是Erlang的os:cmd/1保证同步?如果没有,是否有其他方式进行同步操作系统调用?

elixir

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

AWS Java SDK - 使用区域方法时 Jackson 中的 NoSuchMethodError

我正在尝试使用 AWS Java SDK 访问我的 Elastic Transcoder 作业。但是,这些工作是在与我的开发机器不同的区域完成的。当我尝试建立 ElasticTranscoderClient 并设置它的区域时,我收到以下错误:

java.lang.NoSuchMethodError: com.fasterxml.jackson.databind.ObjectMapper.enable([Lcom/fasterxml/jackson/core/JsonParser$Feature;)Lcom/fasterxml/jackson/databind/ObjectMapper;
    at com.amazonaws.partitions.PartitionsLoader.<clinit>(PartitionsLoader.java:54)
    at com.amazonaws.regions.RegionMetadataFactory.create(RegionMetadataFactory.java:30)
    at com.amazonaws.regions.RegionUtils.initialize(RegionUtils.java:66)
    at com.amazonaws.regions.RegionUtils.getRegionMetadata(RegionUtils.java:54)
    at com.amazonaws.regions.RegionUtils.getRegion(RegionUtils.java:107)
    at com.amazonaws.client.builder.AwsClientBuilder.withRegion(AwsClientBuilder.java:233)
    at com.amazonaws.client.builder.AwsClientBuilder.withRegion(AwsClientBuilder.java:222)
Run Code Online (Sandbox Code Playgroud)

我要强调的是,这仅在我尝试将区域与客户端一起使用时才会发生(对于我尝试使用的任何 AWS 客户端都是如此)

在网上环顾四周,这似乎是由于 Jackson 版本不够高造成的,但我不知道如何解决这个问题,因为它是 AWS SDK 的依赖项,而不是我的项目的依赖项。

其他人遇到过这个问题吗?这真的是一个依赖问题还是只是一个红鲱鱼?

编辑:使用 SDK 版本 1.11.60

java sdk amazon-web-services maven amazon-elastic-transcoder

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

Java Streams:不收集所有值

我有一个存储桶列表,每个存储桶包含许多记录.我正在使用流来对每个桶中的这些记录的值求和.但是,在我collect的总和不正确之后,我遇到了一个问题.到目前为止我的处理声明:

List<StatAccumulator> results = statData.stream().map(
            list -> list.stream().parallel()
            .collect(
                () -> new StatAccumulator(metrics, groups),
                StatAccumulator::containerize,
                StatAccumulator::combine
            )
        ).collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)

StatAccumulator只是一个容器类,它存储我为每条记录求和的每个值.

public class StatAccumulator {
    public StatRecord result;
    private final List<String> metrics;
    private final List<String> groups;
    private Long count;

    public StatAccumulator(List<String> metrics, List<String> groups) {
        this.metrics = metrics;
        this.groups = groups;
    }

    public void containerize(StatRecord initial) {
        //logger.info(initial.toString());
        this.result = new StatRecord(
            initial.v1,
            initial.v2
        );
        this.count = 1l;
    }

    public void combine(StatAccumulator other) {
        result.v1+= other.result.v1;
        result.v2+= other.result.v2;

        this.count += …
Run Code Online (Sandbox Code Playgroud)

java java-8 java-stream

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

JavaScript:无法访问对象中的数组

访问对象的属性时,我遇到了非常奇怪的行为.

运行此代码:

console.log(myObj);
console.log(myObj.items);
console.log(myObj);
Run Code Online (Sandbox Code Playgroud)

我在控制台中得到了这个输出:

在此输入图像描述

怎么可能发生这种情况?

javascript arrays

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