Hej,
Mam problem i nie mam pojecia gdzie co i jak to rozwiazac. W robocie mam proces, ktory podpina sie do roznych gield i sciaga z nich ceny roznych kontraktow. Normalnie uzywam do tego websockets, ale jedna z tych "gield" nie oferuje takie rozwiazania, wiec musze wykorzystac REST. A wiec zrobilem to:
public class CenyFX {
private ScheduledExecutorService exe = Executors.newScheduledThreadPool(1);
public CenyFX(List<String> coins) throws URISyntaxException {
exe.scheduleAtFixedRate(sciagnijCeny, 0, 2, TimeUnit.SECONDS);
}
final Runnable sciagnijCeny = new Runnable() {
@Override
public void run() {
try {
String url = getURL();
logger.info("URL: " + url);
ResponseEntity<String> response = restTemplate.getForEntity(url, String.class);
JSONObject json = new JSONObject(response.getBody());
//prices to jest po prostu mapa
for (Map.Entry<String, Price> entry : prices.entrySet()) {
BigDecimal cena = json.getJSONObject(entry.getKey()).getBigDecimal("usd");
logger.info("Cena to: " + cena);
}
} catch (Exception e) {
logger.error("Error: " + e.getMessage());
}
}
};
}
I teraz problem jest taki, ze ten kod dziala, ale po paru dniach (czasami) godzinach ten ScheduledTask sie nie wykonuje. Patrzylem czy sa jakies wyjatki, ale ich brak. Nawet ta linijka logu "URL:" sie nie wyswietla.
Jakies sugestie mile widziane. Dzieki z gory
99xmarcin