程序员的量化交易之路(24)--Cointrader之RemoteEvent远程事件实体(11)

简介:

转载需注明出处:http://blog.csdn.net/minimicall,http://cloudtrader.top/

在量化交易系统中,有些事件是远端传来的,比如股票的价格数据等。所以,在这一节我们定义了一个远端事件实体。

它是一个基类,并不单独生成数据表。具体代码如下:

package org.cryptocoinpartners.schema;

import javax.annotation.Nullable;
import javax.persistence.Basic;
import javax.persistence.MappedSuperclass;
import javax.persistence.Transient;

import org.hibernate.annotations.Type;
import org.joda.time.Instant;

@MappedSuperclass
public abstract class RemoteEvent extends Event {

    /**
     * @return the time when this event object was created.  it may be later than getTime() due to transmission delays
     */
    @Type(type = "org.jadira.usertype.dateandtime.joda.PersistentInstantAsMillisLong")
    @Basic(optional = false)
    public Instant getTimeReceived() {
        return timeReceived;
    }

    @Transient
    public long getTimestampReceived() {
        return timestampReceived;
    }

    @Basic(optional = true)
    public String getRemoteKey() {
        return remoteKey;
    }

    @Override
    public void publishedAt(Instant instant) {
        super.publishedAt(instant);
        if (timeReceived == null)
            timeReceived = instant;
        this.timestampReceived = timeReceived.getMillis();

    }

    protected RemoteEvent(Instant time, @Nullable String remoteKey) {
        this(time, Instant.now(), remoteKey);
    }

    protected RemoteEvent(Instant time, Instant timeReceived, @Nullable String remoteKey) {
        super(time);
        this.remoteKey = remoteKey;
        this.timeReceived = timeReceived;
        this.timestampReceived = timeReceived.getMillis();
    }

    // JPA
    protected RemoteEvent() {
    }

    protected void setTimeReceived(Instant timeReceived) {
        this.timeReceived = timeReceived;
        this.timestampReceived = timeReceived.getMillis();
    }

    protected void setRemoteKey(@Nullable String remoteKey) {
        this.remoteKey = remoteKey;
    }

    private Instant timeReceived;
    private long timestampReceived;
    private String remoteKey;
}


相关文章
|
11月前
|
搜索推荐 安全 数据挖掘
深度解析:销售易CRM、神州云动CRM与纷享销客CRM的品牌特色与核心优势
销售易CRM是销售易公司推出的一款专注于提升销售效率和客户满意度的客户关系管理软件。成立于2011年,总部位于北京,是国内领先的企业级CRM服务商之一。销售易CRM以“连接客户、赋能销售”为使命,提供移动化办公、全流程管理、数据分析与洞察及集成与扩展等核心功能,助力企业实现销售流程的数字化转型和客户关系的精细化管理。 神州云动CRM隶属于神州数码集团,提供全面的CRM解决方案,特别适合大中型企业。依托集团强大的技术实力,神州云动CRM具备多行业适配、智能数据分析、灵活定制化和稳定可靠的云服务等优势,帮助企业构建高效的客户管理体系,实现客户价值的最大化。
KyLinV10 安装realtek-r8125 2.5G网卡驱动。
KyLinV10 安装realtek-r8125 2.5G网卡驱动。
|
网络协议 JavaScript 数据安全/隐私保护
深入浅出:使用WebSocket打造实时Web应用
【10月更文挑战第2天】本文介绍了WebSocket的基本概念、工作原理以及如何在项目中实现WebSocket通信。希望通过本文,读者能够掌握WebSocket,并考虑在自己的项目中实现实时功能。
|
Java Maven
Flowable初体验
Flowable初体验
205 1
|
边缘计算 Cloud Native
“论SOA在企业集成架构设计中的应用”必过范文,突击2024软考高项论文
SOA架构,即面向服务的架构,它将系统中的所有功能都拆分为一个个独立的服务单元。这些服务通过相互间的沟通与配合,共同完成了整体业务逻辑的运作。在SOA架构中有几个核心概念:服务提供者、服务使用者、服务注册中心、服务规范、服务合同,这些概念清晰地阐述了服务应如何被提
483 6
“论SOA在企业集成架构设计中的应用”必过范文,突击2024软考高项论文
|
Ubuntu Linux Python
Python的离线安装
Python的离线安装
1225 1
|
弹性计算 应用服务中间件 nginx
全景剖析阿里云容器网络数据链路(四)—— Terway IPVLAN+EBPF
本文是[全景剖析容器网络数据链路]第四部分部分,主要介绍Kubernetes Terway EBPF+IPVLAN模式下,数据面链路的转转发链路。
1439 8
全景剖析阿里云容器网络数据链路(四)—— Terway IPVLAN+EBPF
|
关系型数据库 MySQL 数据安全/隐私保护
windows查看自己安装的Mysql版本
windows查看自己安装的Mysql版本
windows查看自己安装的Mysql版本
|
编解码 安全
Wii 可以播放 DVD 吗?当然!| 2023 年更新
Wii 可以播放 DVD 吗?这可能是许多 Wii 爱好者最常问的问题。你可能会失望地发现答案是否定的。但由于技术的进步,只要你掌握正确的方法,你就可以在 Wii 上播放 DVD。
|
Ubuntu Linux 数据安全/隐私保护
WIN11系统安装Linux子系统的方法
使用windows11自带的虚拟机安装Linux子系统(WSL),首先需要电脑在BIOS中打开电脑的虚拟技术支持,可以自己搜索一下,网上有很多。 这里只说明一下剩下安装LINUX子系统的操作。使用的是ubuntu无桌面精简发行版。
4367 0