小编Bar*_*cki的帖子

在什么情况下CopyOnWriteArrayList适合?

我正在学习CopyOnWriteArrayList类.

  • 复制新阵列的目的是什么?
  • 是否其他线程读取数组?

因此,如果系统具有高并发性并且大多数线程的操作都在读取而不是写入,则最好使用它CopyOnWriteArrayList.

java collections

74
推荐指数
2
解决办法
6万
查看次数

如何重试可能失败的Ansible任务?

在我的Ansible游戏中,我正在重新启动数据库,然后尝试对其进行一些操作.重启启动后,重启命令会立即返回,而不是在db启动时.下一个命令尝试连接到数据库.当db没有启动时,该命令失败了.

我想重试几次我的第二个命令.如果上次重试失败,我想失败.

当我重试如下

  retries: 3  
  delay: 5
Run Code Online (Sandbox Code Playgroud)

然后根本不执行重试,因为第一个命令执行整个播放失败.我可以添加, ignore_errors: yes但即使所有重试都失败,这种方式也会通过.有没有一种简单的方法可以在我成功之前重试失败,但是在上次重试没有成功的情况下会失败?

ansible

28
推荐指数
3
解决办法
4万
查看次数

如何列出Kubernetes最近删除的豆荚?

有没有办法获得有关已删除的Kubernetes pod的一些细节(停止,替换为新版本).

我正在调查bug.我有我的pod名称的日志.该pod不再存在,它被另一个(具有不同的配置)替换.新pod与旧版本一样位于同一命名空间,复制控制器和服务中.

像这样的命令

kubectl  get pods
kubectl  get pod <pod-name> 
Run Code Online (Sandbox Code Playgroud)

仅适用于当前的pod(实时或已停止).

我怎样才能获得有关旧豆荚的更多细节?我想看看

  1. 什么时候创建它们
  2. 创建时它们具有哪些环境变量
  3. 为什么以及什么时候停止他们

kubernetes

21
推荐指数
2
解决办法
3万
查看次数

如何阻止IntelliJ IDEA从.properties文件中删除空行?

如何阻止IntelliJ IDEA从.properties文件中删除空行?我想使用空行来分隔文件的各个部分(数据库属性,RabbitMQ属性,业务属性等).

保存文件时,将删除空行.我有IntelliJ IDEA 2016.1.2,带有"保存操作"和"属性"插件.我看不到在任何地方控制.properties文件中的空行的选项.

formatting intellij-idea

12
推荐指数
2
解决办法
2781
查看次数

如何使用Spring RestTemplate压缩压缩HTTP请求?

如何gzip 创建的HTTP 请求org.springframework.web.client.RestTemplate?

我正在使用Spring 4.2.6Spring Boot 1.3.5(Java SE,而不是Android或Javascript在Web浏览器中).

我正在做一些非常大的POST请求,我希望压缩请求体.

java spring http http-compression

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

如何将java.util.Optional <Something>映射到Something?在Kotlin

我有一个返回的方法java.util.Optional<Something>.我想从Kotlin那里使用那个方法,我希望我的结果Something?不是Optional<Something>

如何以惯用的方式在Kotlin做到这一点?

.orElse(null)Optional给我Something?确实的,但它并不好看.如果我写的话,Kotlin不会抱怨 val msg: Something = optional.orElse(null).(msg声明为 Something,而不是Something?- 我松散编译类型检查).

我用Kotlin 1.0.3

optional java-8 kotlin

10
推荐指数
2
解决办法
4134
查看次数

使用Spring ChannelAwareMessageListener时如何处理RabbitMQ使用者取消通知

RabbitMQ的新手和Java新手.

我正在尝试使用java Spring AMQP抽象编写一个使用手动acks并处理消费者取消通知的监听器.我可以使用Spring抽象来完成这两项任务吗?

我想写一个侦听器,它将从队列中提取消息并处理该消息(可能写入数据库或其他东西).我计划使用手动确认,这样如果消息处理失败或由于某种原因无法完成,我可以拒绝并重新排队.到目前为止,我认为我发现为了使用Spring AMQP手动ack/nack/reject,我必须使用ChannelAwareMessageListener.

我意识到我应该从RabbitMQ处理消费者取消通知,但是使用ChannelAwareMessageListener我并没有真正看到为此编码的方法.我看到处理CCN的唯一方法是使用较低级别的Java客户端api编写代码,方法是调用channel.basicConsume()并传递一个DefaultConsumer允许您处理消息传递和取消的新实例.

我还没有看到我会怎样设置clientPropertiesConnectionFactory(告诉我的经纪人能够处理的CCN)因为我在配置一个bean获得工厂.

我的侦听器的伪代码和容器的创建如下.

public class MyChannelAwareListener implements ChannelAwareMessageListener
{
    @Override
    public void onMessage(Message message, Channel channel) throws Exception
    {
        msgProcessed = processMessage(message);

        if(msgProcessed)    
           channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);
        else
           channel.basicReject(message.getMessageProperties().getDeliveryTag(), true);  
    }
}

public static void main(String[] args) throws Exception
{
    ConnectionFactory rabbitConnectionFactory;
    ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext   (MY_CONTEXT_PATH);
    rabbitConnectionFactory = (ConnectionFactory)ctx.getBean("rabbitConnectionFactory");

    SimpleMessageListenerContainer container = new SimpleMessageListenerContainer();

    MyChannelAwareListener listener = new MyChannelAwareListener();
    container.setMessageListener(listener);
    container.setQueueNames("myQueue");
    container.setConnectionFactory(rabbitConnectionFactory); …
Run Code Online (Sandbox Code Playgroud)

java amqp rabbitmq spring-amqp

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

logging.level.root不起作用(spring Boot)

logging.level.root=FATAL在我的application.properties中有属性,但它不起作用.应用程序stil使用我的定义级别logback-spring.xml

我已经阅读了整个http://docs.spring.io/spring-boot/docs/1.4.4.RELEASE/reference/htmlsingle/#howto-logging,但我无法找到可能出错的线索.

我的logback-spring.xml开始

<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
Run Code Online (Sandbox Code Playgroud)

然后是标准的记录器配置

<logger name="org.hibernate" level="INFO"/>
Run Code Online (Sandbox Code Playgroud)

使用logging.level.*属性的代码在哪里?我已经检查org.springframework.boot.logging.LoggingSystem, org.springframework.boot.logging.logback.LogbackConfigurator, org.springframework.boot.logging.logback.LogbackLoggingSystem但我无法找到任何logging.level.*属性的引用.

我对Spring Boot 1.4.3,1.4.4,1.5.1也有同样的问题,但它不适用于任何一个.

java logging logback spring-boot

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

如果给定目录不为空,如何执行Ansible任务?

我使用Ansible将日志移动到备份目录(使用shell模块,mv命令).

mv如果没有要移动的文件,命令将失败.默认情况下,它会导致整个Ansible播放失败.我可以继续游戏,即使任务失败(ignore_errors: yes)

我对此解决方案不满意,因为它会产生错误消息

任务[将文件移动到备份目录]******************************************致命:[xx.xx.xx.xx]:失败!= ...?没有这样的文件或目录","stdout":"","stdout_lines":[],"警告":[]} ...忽略

如何在Ansible中检查目录是否为空,如果空jus跳过任务?

ansible ansible-playbook

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

如何在测试中模拟慢速 SQL 数据库?

我有一个错误,只有在数据库很慢时才会出现。它甚至适用于最简单的数据库操作(选择等)。

我想创建测试,在那里我强制我的数据库变慢。怎么做?
我使用 Spring Boot、Spring Data、Hibernate、MariaDB。

理想情况下,我希望“慢速数据库”部分完全包含在我的 Java 应用程序的测试代码中。这样,测试将完全自动化和自包含。

我只想为一项测试减慢数据库访问速度(不是全局,所有访问)。

有人建议我引入带睡眠的数据库触发器(BEFORE SELECT)

但这并不灵活,因为它会减慢每次访问的速度,而不仅仅是一次测试的访问。

java spring hibernate jdbc

6
推荐指数
2
解决办法
5966
查看次数