Java 检查方法是否仍然 运行

Java Check if a method is still running

我有问题。我在我的项目中使用 Binance API。有了这个 API 我打开一个烛台流来接收不同烛台周期的最新更新。烛台流方法在 class 中,如下所示:

public class CandlestickStream {

    private String market;
    private String coin;
    private String period;

    public CandlestickStream(String market, String coin, String period) throws SecurityException, IOException {
        this.market = market;
        this.coin = coin;
        this.period = period;

        startCandlestickEventStreaming();
      }


    /**
     * Starting a stream to get the current candlestick data of the given symbol and period
     * @param symbol The symbol you want the data from
     * @param interval The period of the candlestick
     * @throws IOException
     * @throws SecurityException
     */
    public void startCandlestickEventStreaming() throws SecurityException, IOException {

        BinanceApiWebSocketClient client = BinanceApiClientFactory.newInstance().newWebSocketClient();

        String symbol = createSymbolString(market, coin);
        CandlestickInterval interval = periodToInterval(period);

        client.onCandlestickEvent(symbol, interval, response -> {

            System.out.println(response);

        });

    }

}

流使用以下代码开始:

// Loop over every market-coin-period combination and start the firstrun and stream
for (String market : markets) {
    for (String coin : coins) {
        for (String period : periods) {

            // Run candlestick stream to monitor if it's still running
            new CandlestickStream(market, coin, period);             

        }
    }
}

但我注意到 binance 可能会重新启动服务器,这会导致流功能停止,然后我将无法正常接收任何更新。所以我需要一种方法来检查函数是否仍然是 运行。如果没有,我需要重新启动它。控制进程以检查它是否仍然是 运行 的最佳方法是什么,如果不是,则重新启动 class?

我会说当您打开流时创建一个数据库条目(状态 = INIT_READ)。完成后更新状态 (DONE_READ)。批处理作业的工作方式。

并且您可以创建一个调度程序以在每 X 时间后检查该条目的状态。

通过服务器启动时的状态检查,您可以决定您需要做什么。