小编Sou*_*ast的帖子

如何在关机后重用线程池

我有一个包含超过7000万行的.csv文件,其中每行生成一个Runnable然后由threadpool执行.这个Runnable会在Mysql中插入一条记录.

更重要的是,我想记录一个用于定位的RandomAccessFile的csv文件的位置.该位置被写入文件.我想在线程池中的所有线程都完成时写入此记录.然后调用ThreadPoolExecutor.shutdown().但是当更多的线路出现时,我又需要一个线程池.如何重用当前的线程池而不是重新创建新的线程池.

代码如下:

public static boolean processPage() throws Exception {

    long pos = getPosition();
    long start = System.currentTimeMillis();
    raf.seek(pos);
    if(pos==0)
        raf.readLine();
    for (int i = 0; i < PAGESIZE; i++) {
        String lineStr = raf.readLine();
        if (lineStr == null)
            return false;
        String[] line = lineStr.split(",");
        final ExperienceLogDO log = CsvExperienceLog.generateLog(line);
        //System.out.println("userId: "+log.getUserId()%512);

        pool.execute(new Runnable(){
            public void run(){
                try {
                    experienceService.insertExperienceLog(log);
                } catch (BaseException e) {
                    e.printStackTrace();
                }
            }
        });

        long end = System.currentTimeMillis();
    } …
Run Code Online (Sandbox Code Playgroud)

java concurrency

44
推荐指数
1
解决办法
2万
查看次数

在规则的LHS中使用java.util.Date

我是一个流口水的新手,了解和工作大约10天的流口水.我遇到了一个问题,即要在规则的LHS部分中比较Date()对象.

    // in Java
    SimpleDateFormat format = new SimpleDateFormat("MM-dd-yyyy hh:mm:ss");
    session.setGlobal("currentDate", format.format(new Date()));       

    # in drl file
    global java.lang.String currentDate ;
    #global java.util.Date currentDate; both tested
    when
    $united : LotteryUnitedDO(lotteryTypeId == LotteryTypeEnum.SSQ, 
        totalFee >= 1000, 
        shareCnt >= (0.1 * totalShare),
        #unitedEndTime is a java.util.Date Object
            unitedEndTime > currentDate     
        )
Run Code Online (Sandbox Code Playgroud)

currentDate的值是当前日期,我看过一些例子和文章这样做,但他们只使用了日期的"yyyy-mm-dd"部分.但我必须比较"hh:mm:ss"部分.像这样:

    $dateInputBox : DateInputBox(verifyDate > "12-Oct-2005")        
Run Code Online (Sandbox Code Playgroud)

我试图更改"drools.dateformat"属性并格式化插入知识库的日期只是为了获得各种编译错误.所以如何处理这个或者drools只是无法处理LHS中日期的小时部分?

在此先感谢您的所有建议表示赞赏.

drools

1
推荐指数
1
解决办法
1万
查看次数

标签 统计

concurrency ×1

drools ×1

java ×1