我正在编写一些Java文件处理代码的测试,并希望确保所有文件都正确关闭.我不想运行'lsof',因为这将打开更多文件并使测试套件不可移植.有人知道这样做的方法吗?
我正在寻找一个简单的持久缓冲区作为Java应用程序中JSON消息的临时存储.内存使用量应相对恒定,不依赖于缓冲区中的消息数.能够从过去的某个点重播消息会很高兴.删除旧邮件应该是有效的.需要能够处理1m消息/小时.
目前,我的应用程序使用本地RabbitMQ代理,该代理将消息发送到远程RabbitMQ代理.当远程代理关闭或不接受消息时,本地RabbitMQ代理的内存使用量随队列长度而增加,并最终停止接受消息.我想将此交换为基于本地磁盘的缓冲区和将消息复制到远程RabbitMQ代理的线程.
有人有主意吗?我看过Kafka,但对我的用例来说似乎有点过分了.MongoDB是可能的,但我担心它的内存使用情况.
我们有一个带有索引数组列的表:
CREATE TABLE mention (
id SERIAL,
phraseIds integer[],
PRIMARY KEY (id)
);
CREATE INDEX indx_mentions_phraseIds on mention USING GIN (phraseids public.gin__int_ops);
Run Code Online (Sandbox Code Playgroud)
使用此列上的"重叠"运算符的查询似乎不使用索引:
explain analyze select m.id FROM mention m WHERE m.phraseIds && ARRAY[11638,11639];
Seq Scan on mention m (cost=0.00..933723.44 rows=1404 width=4) (actual time=103.018..3751.525 rows=1101 loops=1)
Filter: (phraseids && '{11638,11639}'::integer[])
Rows Removed by Filter: 7019974
Total runtime: 3751.618 ms
Run Code Online (Sandbox Code Playgroud)
是否有可能让Postgresql使用索引?或者我们应该做别的事吗?
更新:我使用'SET enable_seqscan TO off'重复测试,但索引仍未使用.
更新:我应该提到我使用9.2和intarray扩展.
更新:似乎intarray扩展是此问题的一部分.我重新创建了表而没有使用intarray扩展,并且索引按预期使用.有人知道如何让索引与intarray扩展一起使用吗?文档(http://www.postgresql.org/docs/9.2/static/intarray.html)表示支持&&的索引.
我发送带有嵌入图像(作为附件)的HTML电子邮件,图像显示在GMail中.但是,它们也会在电子邮件下显示为附件.有谁知道如何避免这种情况,即我只想在电子邮件中使用它们而不是作为附件列出.我使用过"Content-Disposition:inline".我正在使用Spring和JavaMail.
这是我的邮件最终结果.谁能看到什么错了?
Delivered-To: ...
...
Subject: ...
MIME-Version: 1.0
Content-Type: multipart/mixed;
boundary="----=_Part_0_1248835444.1288246311187"
------=_Part_0_1248835444.1288246311187
Content-Type: multipart/related;
boundary="----=_Part_1_592250078.1288246311197"
------=_Part_1_592250078.1288246311197
Content-Type: text/html; charset=us-ascii
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
<html>
<body>
<p><img src="cid:a0"/></p>
</body>
</html>
------=_Part_1_592250078.1288246311197
Content-Type: image/x-png
Content-Transfer-Encoding: base64
Content-Disposition: inline
Content-ID: <a0>
iVBORw0KGgoAAAANSUhEUgAAAPAAAABQCAYAAAAnSfh8AAAACXBIWXMAAC4jAAAuIwF4pT92AAAA
...
Qcz8hzyUxqGHjkNbsY4Df5iBg6OIwafQHBxFjP8PAIwl43uhncLdAAAAAElFTkSuQmCC
------=_Part_1_592250078.1288246311197--
------=_Part_0_1248835444.1288246311187--
Run Code Online (Sandbox Code Playgroud) 我试图让Spring Roo使用我自己的@Id字段而不是生成一个.
@Entity
...
@RooEntity
@Table(name = "usr")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "usr_id")
private Integer id;
...
public Integer getId() { return id; }
public void setId(Integer id) { this.id = id }
...
}
Run Code Online (Sandbox Code Playgroud)
Roo仍然在User_Roo_Entity.aj中创建以下内容:
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "_id")
private Long User._id;
Run Code Online (Sandbox Code Playgroud)
我怎样才能让它确认我的@Id字段?我想指定我自己的发电机等.
有谁知道是否有可能让Hibernate使用1作为新对象的版本(乐观锁定字段)而不是零?我的应用程序以前使用Eclipselink,从1开始,更改导致一些问题.
我正在使用JPA,但期望任何解决方案都是特定于Hibernate的(希望在persistence.xml中有一个属性!).
我希望能够通过在其下添加更多行来扩展行,并扩展页面大小以使它们适合.不是太复杂,但我有麻烦试图插入行等等与之前的CellTable所以我希望有人解决了这个问题.
我使用IntelliJ IDEA 9.0.4与最新版本的Ruby插件和JRuby 1.6.0.自动填充似乎不起作用.按ctrl-space只能显示一些顶级的东西.
require 'rubygems'
require 'mechanize'
agent = Mechanize.new
Run Code Online (Sandbox Code Playgroud)
如果我输入M和ctrl-space,我希望在列表中看到Mechanize,但我什么都没得到.如果我在空行上进行ctrl-space,我会得到一些顶级的东西(FILE,LINE,别名,开始...).
我需要在创建域类的新实例时执行一些初始化.
class ActivationToken {
String foo
String bar
}
Run Code Online (Sandbox Code Playgroud)
当我这样做时,我希望通过ActivationToken内的代码初始化bar:
def tok = new ActivationToken(foo:'a')
Run Code Online (Sandbox Code Playgroud)
我无法看到如何"覆盖"'构造函数'来实现这一点.我知道在这种情况下我可以添加一个普通的构造函数,但这只是一个简单的例子.
java ×6
jpa ×2
spring ×2
gmail ×1
grails ×1
grails-orm ×1
groovy ×1
gwt ×1
hibernate ×1
html ×1
html-email ×1
javascript ×1
jruby ×1
junit ×1
jvm ×1
messaging ×1
mime-message ×1
persistence ×1
postgresql ×1
rabbitmq ×1
ruby ×1
spring-roo ×1
unit-testing ×1