小编qww*_*wwq的帖子

Logback Logging Pattern中的进程ID

我有以下logback模式:

<pattern>
    {"hostname": "${HOSTNAME}", 
     "level": "%p", 
     "method": "%M", 
     "process_id": "${process}", 
     "thread_id": "%t", 
     "timestamp": "%d{Y-M-d}T%d{H:M:S.s}", 
     "mesg":"%msg"}%n
</pattern>
Run Code Online (Sandbox Code Playgroud)

不幸的是,当实际生成日志消息时,我看到: "process_id": "process_IS_UNDEFINED"

是否有任何自动设置的进程ID变量,例如主机名是什么?我在logback文档中找到这种自动设置变量的文档列表时遇到了很多麻烦,有没有人知道更好的文档源?

编辑:我知道映射诊断上下文,但希望内置解决方案不需要这样的设置,就像主机名如何工作.

java logback

16
推荐指数
2
解决办法
7563
查看次数

S3存储桶的强制服务器端加密

我想设置一个S3存储桶策略,以便上传到该存储桶的所有请求都将使用服务器端加密,即使请求标头中未指定.

我看过这篇文章(亚马逊S3服务器端加密存储桶策略问题),有人设法设置了一个存储桶策略,拒绝所有不指定服务器端加密的放置请求,但我不想否认,我想要成功但使用服务器端加密.

我的问题是将输出从EMR流式传输到我的S3存储桶,我不控制发出请求的代码,在我看来,必须在每个请求的基础上指定服务器端加密.

encryption amazon-s3 amazon-web-services emr

15
推荐指数
2
解决办法
6978
查看次数

无法使用EC2 IAM角色的临时凭证启动EMR作业流

我有一个已分配EC2 IAM角色的实例.我无法使用具有角色分配实例的临时凭证从此实例创建EMR作业流,我从API获得以下响应:

  <Error>
    <Type>Sender</Type>
    <Code>ValidationError</Code>
    <Message>Service role and InstanceProfile are required for calls made with temporary credentials provided by STS</Message>
  </Error>
Run Code Online (Sandbox Code Playgroud)

谷歌搜索此错误消息绝对没有透露.无论是使用AWS CLI还是boto直接使用,我都会从API获得相同的响应.为了尝试遵循此错误消息的建议,我尝试传递{InstanceProfile: <instance_profile_name>}给boto中api_paramsrun_jobflow方法的参数,但仍然得到相同的错误.我也试过使用service_role参数run_jobflow,也失败了.将两者一起传递也失败了.

根据亚马逊文档的这个页面,EMR应该支持STS和EC2 IAM角色,所以想知道是否有人以前有这个工作.

amazon-web-services amazon-emr

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

如何在__init__期间调用异常__exit__方法?

假设你有一个定义的类__enter____exit__类似的方法:

class MyClass:
    def f(self):
        raise Exception
    def __enter__(self): 
        return self
    def __exit__(self, type, value, traceback):
        pass
Run Code Online (Sandbox Code Playgroud)

如果在with块内引发异常,如下所示:

with MyClass() as ins:
    ins.f()
Run Code Online (Sandbox Code Playgroud)

__exit__方法将被隐式调用,这是非常好的.

但是如果你的班级是这样的:

class MyClass:
    def __init__(self):
        self.f()
    def f(self):
        raise Exception
    def __enter__(self): 
        return self
    def __exit__(self, type, value, traceback):
        pass
Run Code Online (Sandbox Code Playgroud)

你像这样实例化它:

with MyClass() as ins:
    pass
Run Code Online (Sandbox Code Playgroud)

当在__init__方法内部引发异常时,__enter__还没有被调用,并且也没有被调用__exit__,这不是那么好.解决这个问题的最佳方法是什么?

python python-2.7

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

Mockito ArgumentCaptor 以匹配器为条件捕获

在mockito中,我们可以捕获可能被多次调用的方法的参数,如下所示:

verify(mocked, atLeastOnce())
    .myMethod(myCaptor.capture());
Run Code Online (Sandbox Code Playgroud)

然后

myCaptor.getAllValues()
Run Code Online (Sandbox Code Playgroud)

但是,然后我需要筛选所有捕获的值以找到我感兴趣的值进行验证。

我想做的是这样的:

private class IsMySpecialArg extends ArgumentMatcher<Object> {
  public boolean matches(Object other) {
    // Matching condition
  }
}
Run Code Online (Sandbox Code Playgroud)

...

verify(mocked, atLeastOnce())
        .myMethod(myCaptor.capture(argThat(new IsMySpecialArg()));
Run Code Online (Sandbox Code Playgroud)

这样我就可以简单地打电话myCaptor.getValue()并确保它指的是我真正有兴趣捕获的论点。实现这一目标的最佳方法是什么mockito?它是否受支持,或者我的测试策略是否存在根本性错误?

java mockito

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

Java -Xprof输出的说明

我试图解释通过指定-Xprof标志产生的分析输出.

对于我的应用程序,我得到这样的分析输出:

 Flat profile of 8.34 secs (775 total ticks): main
  Interpreted + native   Method
 10.4%    66  +    12    java.lang.ClassLoader.defineClass1
  3.6%    27  +     0    java.nio.HeapCharBuffer.<init>
  2.5%     1  +    18    java.io.UnixFileSystem.getBooleanAttributes0
...
 74.4%   380  +   179    Total interpreted (including elided)
     Compiled + native   Method
  0.3%     0  +     2    java.util.jar.JarFile$1.hasMoreElements
  0.3%     0  +     2    org.reflections.vfs.ZipDir$1$1.computeNext
  0.1%     0  +     1    java.lang.Object.<init>
...
  1.7%     3  +    10    Total compiled
         Stub + native   Method
  7.5%     0  +    56    java.util.zip.ZipFile.getEntry
  4.7%     0  +    35 …
Run Code Online (Sandbox Code Playgroud)

java profiler

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

为什么python itertools"消耗"食谱比调用下n次更快?

在itertools的python文档中,它为推进迭代器n步骤提供了以下"配方":

def consume(iterator, n):
    "Advance the iterator n-steps ahead. If n is none, consume entirely."
    # Use functions that consume iterators at C speed.
    if n is None:
        # feed the entire iterator into a zero-length deque
        collections.deque(iterator, maxlen=0)
    else:
        # advance to the empty slice starting at position n
        next(islice(iterator, n, n), None)
Run Code Online (Sandbox Code Playgroud)

我想知道为什么这个配方与这样的东西根本不同(除了消耗整个迭代器的处理):

def other_consume(iterable, n):
    for i in xrange(n):
        next(iterable, None)
Run Code Online (Sandbox Code Playgroud)

我曾经timeit证实,正如预期的那样,上述方法要慢得多.配方中有什么可以实现这种卓越的性能?我得到它使用islice,但看islice,它看起来与上面的代码基本相同:

def islice(iterable, *args):
    s = slice(*args)
    it = iter(xrange(s.start …
Run Code Online (Sandbox Code Playgroud)

python python-itertools python-2.7

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

AWS Batch 上的 Docker 中的 Docker?

是否可以在AWS批处理上运行docker-in-docker?

我尝试过通过容器属性安装docker套接字的方法:

container_properties = <<CONTAINER_PROPERTIES
 {
    "command": ["docker", "run", "my container"],
    "image": "docker/compose",
    "jobRoleArn": "my-role",
    "memory": 2000,
    "vcpus": 1,
    "privileged": true,
    "mountPoints": [
      {
        "sourceVolume": "/var/run/docker.sock",
        "containerPath": "/var/run/docker.sock",
        "readOnly": false
      }
    ]
 }
Run Code Online (Sandbox Code Playgroud)

但是,在具有默认配置的 SPOT 计算环境中运行此批处理作业会产生一个立即转换为 FAILED 状态的作业,状态转换原因如下:

Status reason
Unknown volume '/var/run/docker.sock'.
Run Code Online (Sandbox Code Playgroud)

docker aws-batch

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

使用纯 CSS 创建层次结构列表

我想制作一个如下所示的列表:

\n\n

在此输入图像描述

\n\n

我不确定这种类型的设计是否有一个名称,但“层次结构列表”在谷歌上返回的结果看起来像我想要的,所以我在这里称之为它。例如,它本质上与文件系统浏览器中看到的 UI 模式相同(但这不是我的用例)。

\n\n

我相信我可以用 SVG 来实现这一点,但我想知道是否有一种使用纯 CSS 的方法?

\n\n

我尝试过的一件事是将嵌套的<ul>s 与before包含 unicode 框绘图字符(如 )的伪元素一起使用\xe2\x94\x96。到目前为止我所拥有的是这样的:

\n\n

\r\n
\r\n
ul {\r\n  position: relative;\r\n}\r\n\r\nli {\r\n  list-style: none;\r\n}\r\n\r\nli.child::before {\r\n  content: "\xe2\x94\x96";\r\n  transform: scale(1, 1.8);\r\n  position: absolute;\r\n  left: 1em;\r\n}
Run Code Online (Sandbox Code Playgroud)\r\n
<ul>\r\n  <li>Root</li>\r\n  <ul>\r\n    <li class="child">Child Lv. 1</li>\r\n    <ul>\r\n      <li class="child">Child Lv. 2</li>\r\n    </ul>\r\n    <li class="child">Child Lv. 1</li>\r\n    <ul>\r\n      <li class="child">Child Lv. 2</li>\r\n      <li class="child">Child Lv. 2</li>\r\n    </ul>\r\n  </ul>\r\n</ul>
Run Code Online (Sandbox Code Playgroud)\r\n
\r\n
\r\n

\n\n

它看起来很糟糕,而且我想不出任何方法可以像我在图像示例中所做的那样,真正拥有连接项目的垂直线。希望有任何可以帮助我最接近我的图像示例的技巧。

\n\n

SVG …

html css

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