Java时间戳间隙
我在使用下面的代码时遇到一个问题。Java时间戳间隙,java,time,activemq,Java,Time,Activemq,我在使用下面的代码时遇到一个问题。 Timestamp starttime=new java.sql.Timestamp(Calendar.getInstance().getTime().getTime()); 我有两个项目,A和B(现在它们部署在我的本地机器上),还有一个队列。A不断将对象推入队列,B不断从队列中弹出对象。我正在记录push和pop事件,并尝试将事件时间存储到数据库中 下面是数据库中的两条记录。第一列是event_id,第二列使用上述代码生成事件发生时间。我们可以看到,虽然
Timestamp starttime=new java.sql.Timestamp(Calendar.getInstance().getTime().getTime());
我有两个项目,A和B(现在它们部署在我的本地机器上),还有一个队列。A不断将对象推入队列,B不断从队列中弹出对象。我正在记录push和pop事件,并尝试将事件时间存储到数据库中
下面是数据库中的两条记录。第一列是event_id,第二列使用上述代码生成事件发生时间。我们可以看到,虽然“推到队列”事件的事件id较小,这意味着它在“从队列弹出”之前插入数据库,“推到队列”事件的时间比“从队列弹出”稍晚。但是,“推到队列”应该有一个较小的事件id和更早的时间。你能帮我弄清楚这里发生了什么吗
223636“2017-07-07 22:27:20.129”“localhost.localdomain”;“从队列中弹出消息”
223635“2017-07-07 22:27:20.13”“localhost.localdomain”;“消息推送到队列”假设输出基于,推送事件的时间确实早于pop事件。即13ns<129ns。如果A和B在不同的JVM中运行,那么仍然可以:1)发布到队列2)B弹出队列并写入数据库3)写入数据库。取决于代码和进程/线程切换。@AndrewS实际上,A和B都调用另一个项目C来存储事件