当前位置: 首页 > 知识库问答 >
问题:

如何利用Spring boot调度器获取差价

路裕
2023-03-14

我正在写一个用于交易的机器人。我需要得到时间间隔的价差。假设在格林尼治时间00:00:000000时,一双的价格是100.0000,而在格林尼治时间00:00:000005时,价格是101.0000,我想要得到这个差价。

我使用的是Spring Boot调度器,当我运行应用程序时,它总是返回价格不是很多。我想要它不断地检查,直到价格差异到价格。

这是每5分钟检查一次

@Scheduled(fixedRate = (10*60*1000))
private double getInitialPrice(){
    try {
        initialPrice = Double.parseDouble(String.valueOf(api.pricesMap().get("BTCUSDT")));
    } catch (BinanceApiException e) {
        e.printStackTrace();
    }
    return initialPrice;
}
@Scheduled(fixedRate = (5))
private double getInstancePrice(){
    try {
        instancePrice = Double.parseDouble(String.valueOf(api.pricesMap().get("BTCUSDT")));
    } catch (BinanceApiException e) {
        e.printStackTrace();
    }
    return instancePrice;
}
if( getInstancePrice() > getInitialPrice() ){
   //do this
}

共有1个答案

宰父衡
2023-03-14

我认为您不需要将属性设置为静态的,因为这意味着它们对于所有类实例都具有相同的值。

另一点是从使用@schedule注释的方法返回一个值。

在您的代码中:

if( getInstancePrice() > getInitialPrice() ){
   //do this
}
private Double initialPrice = null;
private double instancePrice;
...
@Scheduled(fixedRate = (5))
private double getInstancePrice(){
    try {
        instancePrice = Double.parseDouble(String.valueOf(api.pricesMap().get("BTCUSDT")));
        if (initialPrice == null) {
            initialPrice = instancePrice;
        } else if (instancePrice > initialPrice) {
            // do this
        }
    } catch (BinanceApiException e) {
        e.printStackTrace();
    }
    return instancePrice;
}
 类似资料:
  • 我是新的spring批处理框架和石英调度器。我的任务是使用quartz调度器动态调度一个新的spring批处理作业。所有新的spring批处理作业的条目都在我的数据库中,具有触发器表达式。问题是,对于每一个来自数据库的新的spring批处理作业,我们需要将其包装在Quartz的调度器作业中。这就意味着,当有许多spring批处理作业时,就应该有许多批处理作业类来包装它们,并由quartz调度程序运

  • 我有一些盒子里面有图像。我想让它做的是,如果图像高度小于其内部的div-boxs高度,则向图像添加一个类。 但是我已经用css将图像设置为div框的100%宽度,所以当我使用jquery时。在图像上,它给出了原始尺寸。有什么建议吗? ID为imgProjekt1和ImgProjekt2的文本从codebehind生成一个普通的img标记。

  • 本文向大家介绍利用Java如何获取IP与机器名方法示例,包括了利用Java如何获取IP与机器名方法示例的使用技巧和注意事项,需要的朋友参考一下 前言 本文详细给大家介绍了关于利用Java如何获取IP与机器名的方法示例,分享出来供大家参考学习,下面话不多说,来一起看看详细的介绍: 一、通过IP获取机器名 or 通过机器名获取ip host :主机        hostAddress :ip    

  • 要获取请求URL,可以在堆栈溢出中找到以下方法。 第一种方法: 第二种方法: 第三种方法: 我不知道在spring boot应用程序中使用哪一个来获取请求URL。 如果我使用第三种方法,那么我是否需要在配置类中创建RequestContextListener的bean,如下所示?

  • 有没有人尝试在Spring Boot中创建任何Azure函数,该函数将根据计时器触发,并将使用CosmosDB(Mongo)输入绑定来读取数据库以获取更新。