package com.cloudera.fraud.example.service;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import com.cloudera.fraud.example.model.ItemSaleEvent;
import com.cloudera.fraud.example.model.ProfilePojo;
public class EventualPutFraudHBaseService extends AbstractFraudHBaseService{
static BasicFraudHBaseService rootService = new BasicFraudHBaseService();
static ExecutorService executorService = Executors.newFixedThreadPool(100);
public EventualPutFraudHBaseService() {
}
@Override
public ProfilePojo[] getProfilesFromHBase(List<Long> userIds)
throws IOException {
return rootService.getProfilesFromHBase(userIds);
}
@Override
public void updateProfileCountsForSaleInHBase(
final Long buyerId,
final Long sellerId,
final ItemSaleEvent event) throws IOException, InterruptedException {
executorService.execute(new Runnable() {
public void run() {
try {
rootService.updateProfileCountsForSaleInHBase(buyerId, sellerId, event);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
}
@Override
public void logInProfileInHBase(final long userId, final String ipAddress)
throws IOException, Exception {
executorService.execute(new Runnable() {
public void run() {
try {
rootService.logInProfileInHBase(userId, ipAddress);
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
@Override
public void createProfile(final long userId, final ProfilePojo pojo, final String ipAddress)
throws Exception {
executorService.execute(new Runnable() {
public void run() {
try {
rootService.createProfile(userId, pojo, ipAddress);
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
@Override
public void createBulkProfile(ArrayList<ProfileCreatePojo> pojoList)
throws Exception {
rootService.createBulkProfile(pojoList);
}
}