My code looks like below,
import com.google.gson.Gson;
import com.google.gson.annotations.SerializedName;
import redis.clients.jedis.Jedis;
public class ExternalFeedSimulator {
private static Jedis jedis;
private static final String redisHost = "localhost";
private static final Integer redisPort = 6379;
private static Gson gson = new Gson();
public void start() {
try {
jedis = new Jedis(redisHost, redisPort);
getJSON();
long waitTime = 500;
bidaskratescheduleGenerator(bidaskrates, waitTime);
} catch (Exception e) { System.out.println(e);
}
}
public static String getJSON() {
try {
liveratesnew.clear(); ClientsRateRow[] craterows = gson.fromJson(jedis.get("WLallclientsrates"), ClientsRateRow[].class);
for (ClientsRateRow raterow : craterows) {
liveratesnew.put(raterow.client_com_id, raterow);
curclientrates.add(raterow);
}
RateRow[] cbaserates = gson.fromJson(jedis.get("WLBaseRates"), RateRow[].class);
for (RateRow raterow : cbaserates) {
bidaskrates.add(raterow);
}
} catch (IllegalStateException ex) {
ex.printStackTrace();
} finally {
jedis.close();
}
return null;
}
private void bidaskratescheduleGenerator(final ArrayList<RateRow> displayrates, long waitTime) {
dispatcher.schedule(new TimerTask() {
@Override
public void run() {
long nextWaitTime;
synchronized (displayrates) {
if (listener != null) {
for (RateRow curbidaskrates : displayrates) {
final HashMap<String, String> bidaskevent = new HashMap<String, String>();
bidaskevent.put("desc", curbidaskrates.getGold1_symbol());
bidaskevent.put("bid", curbidaskrates.getGold1_bid());
bidaskevent.put("ask", curbidaskrates.getGold1_ask());
bidaskevent.put("high", curbidaskrates.getGold1_high());
bidaskevent.put("low", curbidaskrates.getGold1_low());
bidaskevent.put("ltp", curbidaskrates.getGold1_ltp());
listener.onEvent(curbidaskrates.getGold1_symbol(), bidaskevent, false);
}
}
displayrates.clear();
nextWaitTime = 500;
}
getJSON();
bidaskratescheduleGenerator(bidaskrates, nextWaitTime);
}
}, waitTime);
}
}
Bookmarks