我正在使用Hornetq 2.0我不知道我怎么知道目前有多少消息在队列中.
这是一个非常有用的功能,所以我可以在运行时知道我的消费者是否足够快地消费消息.
我没有使用JMS api,而是使用高度优化的核心API.
获取队列中消息数的正确(最快)方法是什么?
我找到了2路,但不知道这是什么方法.
public int size(){
ClientSession session;
try {
session = sf.createSession(false, false, false);
ClientRequestor requestor = new ClientRequestor(session, "hornetq.management");
ClientMessage m = session.createMessage(false);
ManagementHelper.putAttribute(m, "core.queue." + queueName, "messageCount");
ClientMessage reply = requestor.request(m);
int count = (Integer) ManagementHelper.getResult(reply);
return count;
} catch (Exception e) {
e.printStackTrace();
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
要么
public synchronized int size(){
ClientSession coreSession = null;
int count = 0;
try {
coreSession = sf.createSession(false, false, false);
ClientSession.QueueQuery result;
result = coreSession.queueQuery(new …Run Code Online (Sandbox Code Playgroud) 有人问我这个问题:
String s = "abc"; // creates one String object and one
// reference variable
In this simple case, "abc" will go in the pool and s will refer to it.
String s = new String("abc"); // creates two objects,
// and one reference variable*
Run Code Online (Sandbox Code Playgroud)
基于以上细节,在下面的代码的println语句之前创建了多少个String对象和多少个引用变量?
String s1 = "spring ";
String s2 = s1 + "summer ";
s1.concat("fall ");
s2.concat(s1);
s1 += "winter ";
System.out.println(s1 + " " + s2);
Run Code Online (Sandbox Code Playgroud)
我的回答是这个代码片段的结果是春冬春夏
有两个参考变量,s1和s2.共创建了八个String对象:"spring","summer"(lost),"spring summer","fall"(lost),"spring fall"(lost),"spring spring spring"(丢失) ),"冬天"(丢失),"春天的冬天"(此时"春天"丢失).
在此过程中,八个String对象中只有两个不会丢失.
这是对的吗?
我刚刚遇到一个有趣的问题,我正在用SQL编写一个程序.
在我的proc中我有2个日期,它们是默认为NULL的可选参数,我想检查这些参数是否为空并且如果不是我的proc的一部分,如果它们为null则则忽略proc的额外部分.
我做了一个相当基本的IF(@dateVariable <> NULL AND @DateVariable2 <> NULL)声明,但if语句永远不会工作,即使变量不为null,我会假设SQL正在努力将日期与NULL进行比较,这很奇怪,因为datetime可以为空.
为了解决这个问题我只是做了IF(DateVariable IS NOT NULL)正确的工作.我也尝试过IF( ISNULL(@DateVariable,'') <> '')也能正常工作
所以我的问题是为什么第一个IF不起作用,但第二个和第三个IF都这样做,因为两者都必须在某个时候将变量的内容与null进行比较?
例:
-----失败-----
DECLARE @Date DATETIME
SET @Date = CURRENT_TIMESTAMP
IF (@Date <> NULL)
BEGIN
print('a')
END
Run Code Online (Sandbox Code Playgroud)
-----作品-----
DECLARE @Date DATETIME
SET @Date = CURRENT_TIMESTAMP
IF (ISNULL(@Date,'') <> '')
BEGIN
print('a')
END
DECLARE @Date DATETIME
SET @Date = CURRENT_TIMESTAMP
IF (@Date IS NOT NULL)
BEGIN
print('a')
END
Run Code Online (Sandbox Code Playgroud) 在随播放框架提供的Websocket聊天示例中,在我看来,只创建/使用了一个actor; 它还使用"接收",如果我理解的话,强制演员和线程之间的1:1映射,有效地使这个聊天服务器单线程?
在这里查看代码:https://github.com/playframework/Play20/blob/master/samples/scala/websocket-chat/app/models/ChatRoom.scala
如果这个分析正确吗?如果是,您是否有关于如何使该服务器具有高度可扩展性的指针?
我正在用java创建一个程序.我使用以下代码
u.setLastlogin(new java.util.Date());
Run Code Online (Sandbox Code Playgroud)
上面的函数接受参数为java.util.Date但我想将此值存储在数据库表中,其中列的类型是timestamp?
任何人都可以帮助如何编码,以便我可以在表中插入系统的当前时间戳.谢谢.
我在groovy中实现了一个自定义任务.如果我为它在groovy(X.groovy)中实现它提供了一个实用程序类并将它放在buildsrc中,那么任务就可以了.如果我在Java(Y.java)中实现等效类并将其放在同一目录中,则任务失败并显示以下错误消息:
:buildsrc:compileGroovystartup failed:
General error during conversion: Could not load class 'com.myinc.gradle.api.data.Y'
from file:/project/buildsrc/build/classes/main/com/myinc/gradle/api/data/Y.class.
Run Code Online (Sandbox Code Playgroud)
Y.class文件存在于错误消息中指定的位置.当Y.java位于任何常用位置时,构建失败:
buildsrc/src/main/groovy/.../Y.java<br>
buildsrc/src/main/java/.../Y.java
Run Code Online (Sandbox Code Playgroud)
Gradle文档说"您可以将构建源代码放在此目录中并坚持Java/Groovy项目的布局约定",并将应用其默认的buildsrc构建脚本.
来源:http://www.gradle.org/docs/current/userguide/organizing_build_logic.html#sec : build_sources
Project Layout允许Groovy源目录包含Groovy和Java代码.
资料来源:http://www.gradle.org/docs/current/userguide/groovy_plugin.html#sec : groovyCompile
复制:
项目/的build.gradle:
task t (type: sample.MyTask) {
println "configuring task"
}
Run Code Online (Sandbox Code Playgroud)
项目/ buildsrc/src目录/主/常规/样本
MyTask.groovy
package sample
import org.gradle.api.DefaultTask
import org.gradle.api.tasks.TaskAction
class MyTask extends DefaultTask {
@TaskAction
public void task() {
println 'task action'
new X().m()
// new Y().m() // uncommenting this line should generate an error …Run Code Online (Sandbox Code Playgroud) 鉴于此java 8代码
public Server send(String message) {
sessions.parallelStream()
.map(Session::getBasicRemote)
.forEach(basic -> {
try {
basic.sendText(message);
} catch (IOException e) {
e.printStackTrace();
}
});
return this;
}
Run Code Online (Sandbox Code Playgroud)
我们如何正确地将它IOException委托给方法调用的堆栈?(简而言之,如何让这个方法抛出这个IOException?)
java中的Lambdas对错误处理看起来不太友好......
我正在努力将Apple pay集成到我的应用程序中进行测试,我认为我需要在我的钱包应用程序中添加一些测试卡.没有这个我在Xcode中收到错误"此设备无法付款."
我已经完成了与Xcode相关的所有设置,并且在功能下我可以看到我的商家ID被选中并且所有3个复选标记都已完成.
所以我尝试添加测试卡进行苹果支付测试(获取令牌)我按照流程设置 - >钱包和苹果支付 - >添加信用卡/借记卡 - >手动输入 - >这里我给了从苹果采取的假凭证
来自苹果网站的测试卡 FPAN:5204 2477 5000 1497有效期:11/2022 CVC:111
但没有一张卡被接受,对于MASTERCARDS我得到的错误就像发行人还没有提供对这张卡的支持.同样我得到的签证测试卡的错误.
所以我想如何测试苹果工资集成而无需在苹果工资设置中添加卡片或如何成功添加测试卡以便我获得令牌.
编辑:我能够成功地看到苹果付费演示屏幕,因为模拟卡默认已经添加到其中.
我正在寻找与真实设备相同的东西
我想用Commons VFS2库创建一个zip文件.我知道如何在使用file前缀时复制文件但是zip没有实现文件写入和读取.
fileSystemManager.resolveFile("path comes here")zip:/some/file.zip当file.zip是一个不存在的zip文件时,我尝试路径时-method失败.我可以解析现有文件,但不存在的新文件失败.
那么如何创建新的zip文件呢?我不能使用createFile(),因为它不受支持,我无法在调用之前创建FileObject.
通常的方法是使用该resolveFile创建FileObject,然后为该对象调用createFile.
有一个插件在我同事的系统中可以正常工作,但在我的系统中却不能。我怀疑它是因为他的settings.xml 中包含一个存储库,但我的settings.xml 中没有。有没有一个工具可以用来确定这个插件是从哪个存储库下载的?