Как сделать так, чтобы часть кода на Java всегда работала в Ubuntu/CentOS?

Я написал некоторый код Java (используя API интерактивных брокеров) для опроса цен на фьючерсы каждые 50 мс, и когда он попадает в ситуацию, которая мне нравится, он покупает или продает 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.


person Community    schedule 18.12.2016    source источник
comment
Timer() — это то же самое, что и Timer(false)// isDaemon, я думаю, вы должны спросить, как остановить программу.   -  person brian    schedule 19.12.2016


Ответы (1)


Java-программа будет работать до тех пор, пока не остановится последний поток, не являющийся демоном, или пока вы не вызовете один из методов остановки (например, System.exit(0)). Поскольку ваш таймер не является демоном, он будет работать вечно. Если у вас есть окно, то у него тоже есть нить.

Поскольку вы предположительно подключились к IB, EReader создает не демонический поток для чтения из сокета. Вы должны отключиться, чтобы остановить этот поток.

Лучшим выбором было бы подписаться на рыночные данные и что-то делать при получении новых данных. Обратите внимание, что 50 мс слишком быстро для запроса данных, так как IB в любом случае обновляется всего несколько раз в секунду.

person brian    schedule 18.12.2016
comment
Какой метод в этом API поможет мне подписаться на эти данные? Есть ли пример кода, на который я мог бы посмотреть, чтобы увидеть правильный способ сделать это? ссылка на API - person ; 19.12.2016
comment
Это единственный ответ SO, который я нашел для java-stackoverflow.com/a/30178619/2855515. Вы можете прочитать Руководство по API, вы можете посмотреть пример кода в API. Группа Yahoo находится по адресу groups.yahoo.com/neo/groups/TWSAPI/. разговоры/сообщения, к которым вы можете присоединиться. На holowczak.com/ib-api-tutorials-by- есть учебник. язык программирования - person brian; 19.12.2016
comment
Вы также можете попробовать код и, если он не работает, задать новый вопрос. - person brian; 19.12.2016