我正在为我的系统中的实体实现"高级搜索"类功能,以便用户可以使用此实体的属性上的多个条件(eq,ne,gt,lt等)搜索该实体.我正在使用JPA的Criteria API动态生成Criteria查询,然后使用setFirstResult()
&setMaxResults()
来支持分页.一切都很好,直到这一点,但现在我想在结果网格上显示结果的总数,但我没有看到直接的方式来获得Criteria查询的总计数.
这是我的代码的样子:
CriteriaBuilder builder = em.getCriteriaBuilder();
CriteriaQuery<Brand> cQuery = builder.createQuery(Brand.class);
Root<Brand> from = cQuery.from(Brand.class);
CriteriaQuery<Brand> select = cQuery.select(from);
.
.
//Created many predicates and added to **Predicate[] pArray**
.
.
select.where(pArray);
// Added orderBy clause
TypedQuery typedQuery = em.createQuery(select);
typedQuery.setFirstResult(startIndex);
typedQuery.setMaxResults(pageSize);
List resultList = typedQuery.getResultList();
Run Code Online (Sandbox Code Playgroud)
我的结果集可能很大,所以我不想加载我的实体进行计数查询,所以告诉我有效的方法来获得像rowCount()
Criteria上的方法一样的总计数(我认为它在Hibernate的Criteria中).
我们的基础架构中有许多REST服务,它们是使用不同的技术(Java,Go,Ruby,NodeJS)构建的,但它们都有一些常见的要求,如身份验证,授权,速率限制,分析等,所以我们想要有一个API这些API前面的网关,所有通信只通过它发生.我开始了解市场上的一些开源产品,如Strongloop/Loopback,WSO2,TYK,APIAXLE和3scale,但大多数产品看起来不像时间测试,可以用于生产.现在我想到的几件事情:
最近我们的一个生产tomcat服务器没有响应,因为tomcat的繁忙线程高达200.当我们在重新启动之前进行线程转储时,我们在TIMED_WAITING状态下获得了100个线程,就像这3个线程一样:
""http-bio-7007"-exec-241" daemon prio=10 tid=0x00002aaab107b000 nid=0x59df waiting on condition [0x0000000051239000]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x0000000580d877d0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2025)
at java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:424)
at org.apache.tomcat.util.threads.TaskQueue.poll(TaskQueue.java:86)
at org.apache.tomcat.util.threads.TaskQueue.poll(TaskQueue.java:32)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:945)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:662)
""http-bio-7007"-exec-237" daemon prio=10 tid=0x00002aaab186e000 nid=0x596d waiting on condition [0x000000004d1f9000]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x0000000580d877d0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2025)
at java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:424)
at org.apache.tomcat.util.threads.TaskQueue.poll(TaskQueue.java:86)
at org.apache.tomcat.util.threads.TaskQueue.poll(TaskQueue.java:32)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:945)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:662)
""http-bio-7007"-exec-236" …
Run Code Online (Sandbox Code Playgroud) 我们计划将Redis用作集中式和高可用性缓存,因此我们使用Redis以及twemproxy和sentinel查看了Redis Labs企业集群和本地集群式设置.在研究RELC时,我们偶然发现了这个链接:
其中说 - RLEC适用于任何标准Redis客户端,包括独立的Redis客户端和Redis群集客户端.
究竟什么是开源Redis集群,我该如何使用它?这与独立的Redis不同吗?为什么在开源版本可用时才使用RELC,仅用于支持?我没有找到任何详细说明差异的来源,所以如果有人使用过这些解决方案之一,请解释为什么选择一个而不是另一个.
最近我们开始使用New Relic来监控我们在tomcat 7.0.6服务器上托管的生产webapp,但我们发现这个tomcat的内存占用量不断增加,并在一周内耗尽所有服务器(AWS高内存双超大型实例)记忆并变得反应迟钝,只有通过重新启动它才能找回它.我们在启动tomcat时提供Xms和Xmx参数,但在几小时内tomcat进程的内存使用量超过Xmx值并且它一直在增加,直到所有服务器内存都结束.这是进程命令:
/usr/java/jdk1.6.0_24//bin/java
-Djava.util.logging.config.file=/xxx/xxx/xxx/xxx/apache-tomcat-7.0.6/conf/logging.properties
-Xms8192m
-Xmx8192m
-javaagent:/xxx/xxx/xxx/xxx/apache-tomcat-7.0.6/newrelic/newrelic.jar
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
-Duser.timezone=Asia/Calcutta
-Djava.endorsed.dirs=/xxx/xxx/xxx/xxx/apache-tomcat-7.0.6/endorsed
-classpath /xxx/xxx/xxx/xxx/apache-tomcat-7.0.6/bin/bootstrap.jar:/xxx/xxx/xxx/xxx/apache-tomcat-7.0.6/bin/tomcat-juli.jar
-Dcatalina.base=/xxx/xxx/xxx/xxx/apache-tomcat-7.0.6
-Dcatalina.home=/xxx/xxx/xxx/xxx/apache-tomcat-7.0.6
-Djava.io.tmpdir=/xxx/xxx/xxx/xxx/apache-tomcat-7.0.6/temp org.apache.catalina.startup.Bootstrap start"
Run Code Online (Sandbox Code Playgroud)
理想情况下,我希望这个过程不要使用超过8GB的内存,但在几小时内它会超过10GB,并且在几天之内它会超过20GB并且此服务器上的其他所有内容都会受到影响(我使用'top'来查看内存使用情况) .这怎么可能?
我使用Sencha touch 2.1.0构建了一个sencha touch应用程序,现在我正在尝试使用此处提供的说明构建它:http://cclerville.blogspot.in/2013/01/sencha-touch-21-phonegap-220- android_3.html
但是这个错误消息的构建失败了,有人可以帮助我吗?
$ sencha app build package && build/myshop/android/cordova/build
Sencha Cmd v3.0.2.288
[ERR] Please ensure this command was executed from a valid application directory
[ERR] Unable to locate 'app.dir' config property from sencha.cfg
Run Code Online (Sandbox Code Playgroud)
我的sencha Cmd目录中的sencha.cfg包含以下条目:
framework.name=touch
framework.version=2.1.0.447
framework.classpath=${framework.dir}/src
# This is the minimum required Sencha Cmd version:
framework.cmd.minver=3.0.0.141
# This is the current version of the Sencha Cmd at the time of this SDK release:
framework.cmd.version=3.0.0.250
Run Code Online (Sandbox Code Playgroud) 我已经使用 Express 构建了一个 Node JS REST 服务。落在此服务上的每个请求都有诸如“X-org-ReqId”和“X-org-Tid”之类的标头,我需要登录在执行此请求期间写入的所有日志行。基本上,我需要在每个日志行中记录一些上下文信息,以帮助我通过多个服务进行事务/请求跟踪。
我正在使用像这样初始化的 winston 记录器:
var winston = require('winston');
var appLogger = new(winston.Logger)({
transports: [
new(winston.transports.Console)({
level: 'info', //TODO: Should be changed to Error in prod
colorize: true
}),
new(winston.transports.DailyRotateFile)({
filename: '/var/log/org/my-service.log',
datePattern: '.yyyy-MM-dd',
tailable: true,
// handleExceptions: true,
json: true,
logstash: true
})
],
exitOnError: false
});
appLogger.on('error', function(err) {
console.error("Logger in error", err);
});
module.exports.logger = function() {
return appLogger;
};
Run Code Online (Sandbox Code Playgroud)
在我想使用它的个别课程中,我喜欢这样:
var logger = require('../config/logger').logger();
myObject.on("error", function (err) {
logger.error("Error connecting bucket=" …
Run Code Online (Sandbox Code Playgroud) 我想在列表中创建dataitem,如下所示:
但我无法vbox
使用3个组件渲染中间部分.我是按照这个例子:http://www.sencha.com/blog/dive-into-dataview-with-sencha-touch-2-beta-2/
这就是我定义数据项的方式:
Ext.define('MyTabApp.view.CartListItem', {
extend : 'Ext.dataview.component.DataItem',
alias : 'widget.cartlistitem',
requires: [
'Ext.Img'
],
config : {
cls: 'cart-list-item',
layout: {
type: 'hbox',
align: 'center'
},
image: true,
details: {
cls: 'x-details',
flex: 3,
},
pricing: {
cls: 'x-pricing',
flex: 1
},
removeButton: {
iconCls : 'delete',
iconMask : true,
ui : 'astonvilla',
style : 'margin-left: 5px; margin-top:10px; padding:5px;'
},
moveButton: {
iconCls : 'reply',
iconMask : true,
ui : 'astonvilla',
style : 'margin-left: …
Run Code Online (Sandbox Code Playgroud) 从我在iPad上的混合应用程序中,只要用户点击相应的按钮,我就想通过FB和Twitter分享某些URL.这是我为twitter做的(有效):
shareStyleOnTwitter : function(styleId, title) {
var httpUrl = 'twitter://post?message=';
var url = 'www.mywebsite.com/'+styleId;
var params = 'Check out '+title+' on #mywebsite '+url;
window.location = httpUrl+encodeURIComponent(params);
}
Run Code Online (Sandbox Code Playgroud)
这将打开一个Twitter应用程序,其中包含一个带有消息的帖子对话框窗口.用户只需点击"推文"按钮即可发布.
我使用的功能是FB(不起作用):
shareStyleOnFB : function(styleId, title, imageUrl){
var httpUrl = 'fb://publish/profile/#me?text=';
var params = 'www.mywebsite.com/'+styleId;
console.log(httpUrl+encodeURIComponent(params));
window.location = httpUrl+encodeURIComponent(params);
},
Run Code Online (Sandbox Code Playgroud)
这会打开一个带有我的Feed的FB应用程序,但没有带有消息的共享/发布/状态窗口.
我从这些主题中采纳了这些想法:
Facebook iPhone应用程序支持的所有自定义URL方案是什么?
如何使用iOS上的原生Twitter应用程序打开Twitter推文?
有人能告诉我FB URL方案有什么问题吗?
我正在创建一个应用程序,它将获取用户的当前位置或他的自定义地图标记,以找出lat和long然后使用这些值我想知道该区域的密码(zipcode),以便我可以告诉用户是否可以交付货物在那个地区与否.
我试过这个:http://www.geonames.org/export/ws-overview.html但它没有完整的数据,不管它有什么不是很准确.是否有其他API可用于获取此类数据?
java ×3
javascript ×3
node.js ×2
sencha-touch ×2
tomcat ×2
api ×1
cordova ×1
express ×1
extjs ×1
facebook ×1
geocoding ×1
google-maps ×1
hibernate ×1
ipad ×1
jpa ×1
kotlin ×1
logging ×1
memory-leaks ×1
ndc ×1
newrelic ×1
pagination ×1
redis ×1
rest ×1
security ×1
strongloop ×1
thread-dump ×1
threadpool ×1
twemproxy ×1
winston ×1
wso2 ×1