小编rob*_*ock的帖子

如何将NaN和Infinity的浮点数或双精度存储在内存中?

据我所知,java将存储器作为32位整数存储在内存中,具有以下属性:

  • 第一位用于确定符号
  • 接下来的8位代表指数
  • 最后的23位用于存储分数

这样就不会为三种特殊情况留下任何备用位:

  • 为NaN
  • 正无穷大
  • 负无穷大

我猜可以用负0来存储其中一个.

这些实际上如何在记忆中表现出来?

java nan infinity

39
推荐指数
3
解决办法
7108
查看次数

Spring启动JAR作为Windows服务

我试图用procrun包裹弹簧靴"uber JAR".

按预期运行以下工作:

java -jar my.jar

我需要我的弹簧启动罐自动启动Windows启动.最好的解决方案是将jar作为服务运行(与独立的tomcat相同).

当我尝试运行这个时,我得到"Commons Daemon procrun失败并退出值:3"

看一下spring-boot源代码,它看起来好像使用了自定义类加载器:

https://github.com/spring-projects/spring-boot/blob/master/spring-boot-tools/spring-boot-loader/src/main/java/org/springframework/boot/loader/JarLauncher.java

尝试直接运行main方法时,我也得到"ClassNotFoundException".

java -cp my.jar my.MainClass

有没有一种方法可以用来在spring boot jar中运行我的main方法(不是通过JarLauncher)?

有没有人成功地将spring-boot与procrun集成?

我知道http://wrapper.tanukisoftware.com/.但是由于他们的许可我不能使用它.

UPDATE

我现在设法使用procrun启动服务.

set SERVICE_NAME=MyService
set BASE_DIR=C:\MyService\Path
set PR_INSTALL=%BASE_DIR%prunsrv.exe

REM Service log configuration
set PR_LOGPREFIX=%SERVICE_NAME%
set PR_LOGPATH=%BASE_DIR%
set PR_STDOUTPUT=%BASE_DIR%stdout.txt
set PR_STDERROR=%BASE_DIR%stderr.txt
set PR_LOGLEVEL=Error

REM Path to java installation
set PR_JVM=auto
set PR_CLASSPATH=%BASE_DIR%%SERVICE_NAME%.jar

REM Startup configuration
set PR_STARTUP=auto
set PR_STARTIMAGE=c:\Program Files\Java\jre7\bin\java.exe 
set PR_STARTMODE=exe
set PR_STARTPARAMS=-jar#%PR_CLASSPATH%

REM Shutdown configuration
set PR_STOPMODE=java
set PR_STOPCLASS=TODO
set PR_STOPMETHOD=stop

REM JVM configuration
set …
Run Code Online (Sandbox Code Playgroud)

procrun spring-boot

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

在 Spring 应用程序关闭时发送 RabbitMQ 消息

我有一个监控服务,它在应用程序启动、应用程序关闭和每分钟(滴答声)时向rabbitMQ发送一条消息。

启动和勾选事件工作正常。当最初编写该类时,关闭事件也起作用。

我正在使用 spring-boot-starter-amqp 1.3.3.RELEASE

该事件是在接口destroy的方法上触发的DisposableBean

我也尝试过实现ApplicationListener<ContextClosedEvent>接口和Lifecycle接口

上述两种方法都返回:

java.lang.IllegalStateException:ApplicationContext 已关闭,ConnectionFactory 无法再创建连接。

我注意到有一个错误修复https://jira.spring.io/browse/AMQP-536,它建议了Lifecycle界面。

如何确保在 RabbitMQ 连接关闭之前发送关闭事件消息?

编辑:更多信息和最新代码

该应用程序有多个连接工厂到不同的服务器。Monitor Service 通过 与 RabbitMQ 服务器连接monitorRabbitTemplate

问题似乎是 monitorRabbitTemplate连接工厂在MonitorService.

最新代码(使用Lifecycle代替ApplicationListener<ContextClosedEvent>DisposableBean):

@Component
public class MonitorServiceImpl implements  MonitorService , Lifecycle {
    private static final Logger LOGGER = LoggerFactory.getLogger(MonitorServiceImpl.class);

    private final RabbitTemplate monitorRabbitTemplate;
    private final String queueName;
    private final Gson gson = new Gson();

    @Autowired …
Run Code Online (Sandbox Code Playgroud)

java spring rabbitmq spring-amqp spring-boot

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

是否可以从 Scala(spark) 调用 python 函数

我正在创建一个 Spark 作业,需要使用用 python 编写的函数将列添加到数据帧中。其余的处理是使用 Scala 完成的。

我找到了如何从 pyspark 调用 Java/Scala 函数的示例:

我发现以其他方式发送数据的唯一示例是使用pipe

我是否可以将整个数据帧发送到 python 函数,让该函数操作数据并添加其他列,然后将生成的数据帧发送回调用 Scala 函数?

如果这是不可能的,我当前的解决方案是运行 pyspark 进程并调用多个 Scala 函数来操作数据帧,这并不理想。

python scala apache-spark apache-spark-sql pyspark

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