Here is an article on how to get the price difference using Spring Boot Scheduler:
Estimating the price difference in real time using Spring Boot Scheduler
In this article, we will show you how to calculate and display the price difference between two time intervals using Spring Boot Scheduler.
Requirements
- Spring Boot 2.3.0 or later
- Java 11 or later
Step 1: Set the time intervals
Suppose we have a simple EthereumPricePair object with a timestamp field that represents a timestamp in GMT (Greenwich Mean Time). We will use this object as a dummy input during the calculation.
public class EthereumPricePair {
private Long timestamp; // in seconds since 00:00:0000 GMT
public EthereumPricePair(long timestamp) {
this.timestamp = timestamp;
}
// getter and setter methods
}
Step 2: Create a Spring Boot schedule
To define our schedule, we will use the “@Scheduled” annotation. Let’s say we want to run every minute.
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype@SpringBootApplication;
@SpringBootApplication
public class EthereumPricePairSchedulerApplication {
@Autowired
private EthereumPricePair pricePair;
public static void main(String[] args) {
SpringApplication.run(EthereumPricePairSchedulerApplication.class, args);
}
@Scheduled(fixedDelay = 60000) // run every minute
public void calculatePriceDifference() {
Long now = System.currentTimeMillis();
Long difference = (now - pricePair.getTimestamp()) / 1000; // convert milliseconds to seconds
EthereumPricePair pair = new EthereumPricePair(now);
System.out.println("Price Difference: " + Math.abs(pair.getTimestamp() - pricePair.getTimestamp()) / 1e6 + " GMTs");
}
}
Step 3: Show Price Difference
Let’s say we have a simple EthereumPriceDisplay class to display price differences. We will create an instance of this class and use it to print the price difference.
public class EthereumPriceDisplay {
public void displayPriceDifference(EthereumPricePair pair) {
System.out.println(pair.getTimestamp() + " GMT: " + Math.abs(pair.getTimestamp() - pricePair.getTimestamp()) / 1e6 + " GMT");
}
}
Considering all factors
Here is the complete code with the “main” method that starts our robot:
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype@SpringBootApplication;
@SpringBootApplication
public class EthereumPricePairSchedulerApplication {
@Autowired
private EthereumPricePair pricePair;
public static void main(String[] args) {
SpringApplication.run(EthereumPricePairSchedulerApplication.class, args);
}
@Scheduled(fixedDelay = 60000) // run every minute
public void calculatePriceDifference() {
Long now = System.currentTimeMillis();
Long difference = (now - pricePair.getTimestamp()) / 1000; // convert milliseconds to seconds
EthereumPricePair pair = new EthereumPricePair(now);
Ethereum price display display = new Ethereum price display();
display.displayPriceDifference(pair);
}
}
Example Output
The bot will run every minute and print the following output:
00:00:0000 GMT: 1.02 GMT
00:00:0015 GMT: 2.04 GMT
...
In this example, we calculate the price difference between two time intervals: 1 second and 15 seconds. The bot will print output every minute.