难度:测试中执行线程操作

 package com.hfepc.job.dataCollection.test;

 import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Timer;
import java.util.TimerTask;
import java.util.concurrent.CountDownLatch; import javax.annotation.Resource; import org.junit.Test;
import org.junit.runner.RunWith;
import org.pentaho.di.job.Job;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.test.context.ActiveProfiles;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.transaction.TransactionConfiguration;
import org.springframework.transaction.annotation.Transactional; import com.hfepc.service.dataCollection.IDataCollectionService;
import com.hfepc.service.zkinsp.MySpringJUnit4ClassRunner; @SuppressWarnings("unused")
@RunWith(MySpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath*:spring-context.xml",
"classpath*:spring-servlet.xml", "classpath*:cxf-client.xml" })
@ActiveProfiles("development")
@Transactional
@TransactionConfiguration(transactionManager = "transactionManager", defaultRollback = false)
public class DataCollectionTest extends Job { private final Logger log = LoggerFactory
.getLogger(DataCollectionTest.class); @Resource(name = "IDataCollectionService")
private IDataCollectionService IDataCollectionService; private final int i = 3;
/*
* 线程计数器
* 将线程数量初始化
* 每执行完成一条线程,调用countDown()使计数器减1
* 主线程调用方法await()使其等待,当计数器为0时才被执行
*/
private final CountDownLatch latch = new CountDownLatch(i); @Test
public void createTest() {
Timer timer;
timer = new Timer();
timer.schedule(new TimerTaskTest03(), 0, 60000);
//三个参数
//第一个执行内容:内容是定时任务的执行内容,通过实现抽象类来完成这个动作
//第二个参数内容:是在第多少时间之后开始执行定时任务内容,该参数不能小于0
//第三个参数内容:是在两个任务之间的执行时间间隔,该参数不能小于等于0
try {
latch.await(); // 主线程等待
} catch (InterruptedException e) {
e.printStackTrace();
}
70
private class TimerTaskTest03 extends TimerTask { @Override
public void run() {
Date date1 = new Date(this.scheduledExecutionTime());
String date = DateUtils.format(DateUtils.getCurDate(),
"yyyy/MM/dd");
99 log.error("本次执行该线程的时间为:" + date1);
log.info("时间:" + date);
String sql = "SELECT A.[Date] AS 'date_sta',A.barcode1 AS 'barcode1_sta',A.barcode2 AS 'barcode2_sta',A.HeightNum1Range AS 'HeightNum1Range',A.HeightNum2Range AS 'HeightNum2Range',A.HeightNum3Range AS 'HeightNum3Range',A.HeightData AS 'HeightData',A.HeightDL AS 'HeightDL',A.Num AS 'Num',A.CCDFlag AS 'CCDFlag',A.barcode3 AS 'barcode3',A.PressData AS 'PressData',B.SpurtData AS 'SpurtData',B.[Date] AS 'date_glu',B.CCDODRange AS 'CCDODRange',B.CCDODValue AS 'CCDODValue',B.CCDODFlag AS 'CCDODFlag',B.CCDConcentricityRange AS 'CCDConcentricityRange',B.CCDConcentricityValue AS 'CCDConcentricityValue',B.CCDConcentricityFlag AS 'CCDConcentricityFlag',B.barcode2 AS 'barcode2_glu',B.Static AS 'Static',B.SheetIron AS 'SheetIron',B.VerticalityFlag AS 'VerticalityFlag',B.TorsionData AS 'TorsionData' FROM[dbo].[StaticComponentsProductionData] A LEFT JOIN [dbo].[GlueDispenserProductionData] B ON A.barcode1 = B.barcode1 WHERE A.[Date] LIKE '"
+ date + "%'";
List<Map<String, Object>> rows = IDataCollectionService
.readSQLData(sql);
log.info("返回标签:" + rows.size());
log.info("返回标签:" + (String) rows.get(0).get("barcode2_sta"));
}
} }

Junit 4 测试中使用定时任务操作的更多相关文章

  1. TV测试中的按键长按操作模拟

    从UiAutomator在TV测试中的局限性说起: 智能TV的操作和手机的操作有很大不同,一般智能TV的操作为遥控器按键操作,来向TV OS发送  KeyCode,以完成指定操作. UiAutomat ...

  2. Junit测试中找不到junit.framework.testcase

    在使用Junit进行测试时,出现如下问题: 找不到junit.framework.testcase 解决方法: 选中项目->属性->Java构建路径->库->添加外部jar 在 ...

  3. Mockito在JUnit测试中的使用

    Mockito是一种用于替代在测试中难以实现的成员,从而让testcase能顺利覆盖到目标代码的手段.下面例子将展示Mockito的使用. 完整代码下载:https://files.cnblogs.c ...

  4. PHP中使用PDO操作事务的一些小测试

    关于事务的问题,我们就不多解释了,以后在学习 MySQL 的相关内容时再深入的了解.今天我们主要是对 PDO 中操作事务的一些小测试,或许能发现一些比较好玩的内容. 在 MyISAM 上使用事务会怎么 ...

  5. spring项目中使用定时任务

    当我们希望在某个时间点来执行一些业务方法的时候就用到定时任务,在spring的项目中使用定时任务很简单.如下 第一步.加入jar包 <dependency> <groupId> ...

  6. Appium 在 Android UI 测试中的应用

    原文地址:https://blog.coding.net/blog/Appium-Android-UI Android 测试工具与 Appium 简介 Appium 是一个 C/S 架构的,支持 An ...

  7. MyBatis 中实现SQL语句中in的操作 (11)

    MyBatis 中实现SQL语句中in的操作 概括:应用myBatis实现SQL查询中IN的操作 1.数据库结构及其数据 2.mapper.xml文件 <?xml version="1 ...

  8. 理解CSV文件以及ABAP中的相关操作

    在很多ABAP开发中,我们使用CSV文件,有时候,关于CSV文件本身的一些问题使人迷惑.它仅仅是一种被逗号分割的文本文档吗? 让我们先来看看接下来可能要处理的几个相关组件的词汇的语义. Separat ...

  9. 【Java EE 学习 32 下】【JQuery】【JQuey中的DOM操作】

    一.JQuery中的DOM操作. 什么是DOM:DOM是一中和浏览器.平台.语言无关的接口,使用该接口可以轻松访问页面中所有的标准组件.DOM简称文档对象模型,是Document Oject Mode ...

随机推荐

  1. 【Luogu3121】审查(AC自动机)

    题面 Description 农夫约翰为他的奶牛们购买了一份名字叫Good Hooveskeeping的定期杂志,因此奶牛们在挤奶期间就有了大量的阅读素材.遗憾的是在最新的一期上,有一篇有点儿不适当的 ...

  2. 【NOIP2015】子串(动态规划)

    题目戳我 题解 很简单的一道题... 看来那时候还是我太菜了... 设f[i][j][k][0/1]表示在第一个串中的位置i,匹配到了位置j,一共分了k段,0/1表示上一个位置是否在某一段中 转移就很 ...

  3. 【NOIP2013】华容道(最短路)

    题目戳我 懒得粘贴题目了..就这要凑合一下吧... 题解 反正棋盘的状态不会变的... 所以,预处理一下??? 恩,如果一个棋子要移动到某个目标位置的话, 可以看成只有空格和这个子要动呀(其他的有区别 ...

  4. [Luogu3242][HNOI2015]接水果

    Luogu 我今天做两道整体二分结果全都是BZOJ权限题??? sol 我们抓住"盘子的路径是水果的路径的子路径"这个条件. 考虑每一个盘子路径\((u,v)\),讨论它可以作为哪 ...

  5. devstack部署openstack环境

    背景:公司需要搭建openstack私有云.配置两台物理服务器. 各大搜索引擎了解了下OpenStack.决定先在虚拟机上部署实现openstack. 前提准备 设备:一台宿主机Windows10 1 ...

  6. 快速开发基于 HTML5 网络拓扑图应用之 DataBinding 数据绑定篇

    前言 发现大家对于我从 json 文件中直接操作节点属性来控制界面的动态变化感到比较好奇,所以这篇就针对数据绑定以及如何使用这些绑定的数据做一篇说明,我写了一个简单的例子,基于机房工控的服务器上设备的 ...

  7. @Controller 类中初始化问题解决办法

    在Controller类中常常遇到有些参数需要初始化,甚至有些只允许初始化一次,而Controller类不像servelet类可以调用init()函数进行初始化,这里想到的办法是设置标记值,让初始化部 ...

  8. 学习ASP.NET Core Razor 编程系列二——添加一个实体

    在Razor页面应用程序中添加一个实体 在本篇文章中,学习添加用于管理数据库中的书籍的实体类.通过实体框架(EF Core)使用这些类来处理数据库.EF Core是一个对象关系映射(ORM)框架,它简 ...

  9. Java线程sleep,yield,join,wait方法详解

    1.sleep() 当一个线程调用sleep方法后,他就会放弃cpu,转到阻塞队列,sleep(long millis)方法是Thread类中的静态方法,millis参数设定线程睡眠的时间,毫秒为单位 ...

  10. IOS开发之XCode学习014:警告对话框和等待提示器

    此文学习来源为:http://study.163.com/course/introduction/1002858003.htm 此工程文件实现功能:  1.警告对话框和等待提示器的概念 2.警告对话框 ...