如何在Java中保留一块代码,总是在Ubuntu/CentOS上运行



我已经编写了一些Java代码(使用Interactive Brokers API)进行调查以进行期货每50ms定价,而当我喜欢的情况下,它将购买或出售X合同等。

Timer t = new Timer( );
t.scheduleAtFixedRate(new TimerTask() {
    @Override
    public void run() {
      // get pricing, look for situational stuff
    }
}, 0, 50);

但是,对于如何编写代码以使程序始终在后台运行,我迷失了方向。如果重要的话,我在OS X上开发它,生产环境可以是Ubuntu或Centos

Java程序将运行到最后一个非守护线线程停止或调用停止方法之一(例如System.exit(0))。由于您的计时器是非守护程序,因此它将永远运行。如果您有一个窗口,那也有一个线程。

由于您大概已连接到IB,因此EREADER会创建一个非daemon线程以从插座读取。您必须断开连接才能停止此线程。

一个更好的选择是订阅市场数据并在收到新数据时做某事。请注意,由于IB仅每秒几次更新几次,因此50ms太快了。

最新更新