// Path: src/main/java/org/light/rtc/base/JobStatsWindow.java
// public interface JobStatsWindow {
// 	/**
// 	 * 根据接受的实时数据流，完成相关实时计算业务需求。
// 	 * @param userLogs
// 	 * @return
// 	 */
// 	int rtcStats(List<String> userLogs);
// 	/**
// 	 * 适合做线下离线批量处理计算
// 	 * @param start
// 	 * @param size
// 	 * @return
// 	 */
// 	int batchStats(int start, int size);
// 	/**
// 	 * 返回服务健康状态
// 	 * @return
// 	 */
// 	int getHealthStatus();
// }
// 
// Path: src/main/java/org/light/rtc/util/ConfigProperty.java
// public class ConfigProperty {
// 	
// 	private static Properties dbProps;
// 	
// 	private static synchronized void init_prop(){
// 		dbProps = new Properties();	
// 		String path = ConfigProperty.class.getClassLoader().getResource("").getPath();
// 		path = path.replaceAll("%20", " ");
// 		InputStream fileinputstream = null;
// 		try {
// 			fileinputstream = new FileInputStream(path+"rtc_conf.properties");
// 		} catch (FileNotFoundException e) {
// 			e.printStackTrace();
// 		}
// 		try {
// 			dbProps.load(fileinputstream);
// 		} catch (IOException e) {
// 			e.printStackTrace();
// 			System.err.println("不能读取数据库配置文件, 请确保rtc_conf.properties在CLASSPATH指定的路径中!");
// 		}
// 	}
// 	
// 	public static Properties getProps(){
// 		if(dbProps==null)
// 			init_prop();
// 		return dbProps;
// 	}
// 	
// 	public static String getCurDateTime() {
// 		SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");//"yyyyMMddHHmmss"
// 		return df.format(new Date());
// 	}
// 	
// 	public static void main(String[] args) {
// 		System.out.println(ConfigProperty.getProps().getProperty("cluterName"));
// 		System.out.println(ConfigProperty.getProps().getProperty("clusterHosts"));
// 		System.out.println(ConfigProperty.getProps().getProperty("serverPort"));
// 		
// 		System.out.println("=============================================");
// 		
// 		System.out.println(ConfigProperty.getProps().getProperty("minThreadNum"));
// 		System.out.println(ConfigProperty.getProps().getProperty("maxThreadNum"));
// 		
// 	}
// 	
// }


import java.util.List;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ForkJoinPool;
import java.util.concurrent.Future;
import org.light.rtc.base.JobStatsWindow;
import org.light.rtc.util.ConfigProperty;
package org.light.ldrtc.jober;



public class JobService implements JobStatsWindow {

	@Override
	public int batchStats(int start, int size) {
		return 0;
	}

	@Override
	public int getHealthStatus() {
		return 1;
	}

	@Override
	public int rtcStats(List<String> userLogs) {
		System.out.println(ConfigProperty.getCurDateTime()+" 计算之初 分配的用户信息个数："+userLogs.size());
		ForkJoinPool fjPool = new ForkJoinPool(); 
		Future<Integer> fjTask = fjPool.submit(new StatsTask(userLogs));
		int rtNum = -1;
		try {
			rtNum = fjTask.get();
		} catch (InterruptedException | ExecutionException e) {
			e.printStackTrace();
		}
		fjPool.shutdown();
		fjPool = null;
		userLogs.clear();
// Path: src/main/java/org/light/rtc/base/JobStatsWindow.java
// public interface JobStatsWindow {
// 	/**
// 	 * 根据接受的实时数据流，完成相关实时计算业务需求。
// 	 * @param userLogs
// 	 * @return
// 	 */
// 	int rtcStats(List<String> userLogs);
// 	/**
// 	 * 适合做线下离线批量处理计算
// 	 * @param start
// 	 * @param size
// 	 * @return
// 	 */
// 	int batchStats(int start, int size);
// 	/**
// 	 * 返回服务健康状态
// 	 * @return
// 	 */
// 	int getHealthStatus();
// }
// 
// Path: src/main/java/org/light/rtc/util/ConfigProperty.java
// public class ConfigProperty {
// 	
// 	private static Properties dbProps;
// 	
// 	private static synchronized void init_prop(){
// 		dbProps = new Properties();	
// 		String path = ConfigProperty.class.getClassLoader().getResource("").getPath();
// 		path = path.replaceAll("%20", " ");
// 		InputStream fileinputstream = null;
// 		try {
// 			fileinputstream = new FileInputStream(path+"rtc_conf.properties");
// 		} catch (FileNotFoundException e) {
// 			e.printStackTrace();
// 		}
// 		try {
// 			dbProps.load(fileinputstream);
// 		} catch (IOException e) {
// 			e.printStackTrace();
// 			System.err.println("不能读取数据库配置文件, 请确保rtc_conf.properties在CLASSPATH指定的路径中!");
// 		}
// 	}
// 	
// 	public static Properties getProps(){
// 		if(dbProps==null)
// 			init_prop();
// 		return dbProps;
// 	}
// 	
// 	public static String getCurDateTime() {
// 		SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");//"yyyyMMddHHmmss"
// 		return df.format(new Date());
// 	}
// 	
// 	public static void main(String[] args) {
// 		System.out.println(ConfigProperty.getProps().getProperty("cluterName"));
// 		System.out.println(ConfigProperty.getProps().getProperty("clusterHosts"));
// 		System.out.println(ConfigProperty.getProps().getProperty("serverPort"));
// 		
// 		System.out.println("=============================================");
// 		
// 		System.out.println(ConfigProperty.getProps().getProperty("minThreadNum"));
// 		System.out.println(ConfigProperty.getProps().getProperty("maxThreadNum"));
// 		
// 	}
// 	
// }


// Path: src/test/java/org/light/ldrtc/jober/JobService.java
import java.util.List;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ForkJoinPool;
import java.util.concurrent.Future;
import org.light.rtc.base.JobStatsWindow;
import org.light.rtc.util.ConfigProperty;

package org.light.ldrtc.jober;



public class JobService implements JobStatsWindow {

	@Override
	public int batchStats(int start, int size) {
		return 0;
	}

	@Override
	public int getHealthStatus() {
		return 1;
	}

	@Override
	public int rtcStats(List<String> userLogs) {
		System.out.println(ConfigProperty.getCurDateTime()+" 计算之初 分配的用户信息个数："+userLogs.size());
		ForkJoinPool fjPool = new ForkJoinPool(); 
		Future<Integer> fjTask = fjPool.submit(new StatsTask(userLogs));
		int rtNum = -1;
		try {
			rtNum = fjTask.get();
		} catch (InterruptedException | ExecutionException e) {
			e.printStackTrace();
		}
		fjPool.shutdown();
		fjPool = null;
		userLogs.clear();
		userLogs = null;