package com.cfets.ts.u.limitapi.job;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit; import org.junit.Before; import jodd.datetime.JDateTime;
import junit.runner.BaseTestRunner; import com.cfets.cwap.s.util.db.JdbcManager;
import com.cfets.cwap.s.util.db.JdbcProperty;
import com.cfets.ts.s.authentication.AuthenticationHelper;
import com.cfets.ts.s.log.TsLogger;
import com.cfets.ts.u.limitapi.LimitApiHelper;
import com.cfets.ts.u.limitapi.service.impl.LimitServiceImpl;
import com.cfets.ts.u.limitapi.util.DateUtils;
import com.cfets.ts.u.limitapimgmt.LimitapimgmtProvider;
import com.cfets.ts.u.limitapimgmt.entity.vo.FlowControlVO; public class LimitApilLinsenerJob{ private static final TsLogger logger = TsLogger.getLogger(LimitServiceImpl.class);
public static final int TASK_START_TIME = 1000;
public static final int TASK_END_TIME = 5000;
/*
public static void main(String[] args) {
ScheduledExecutorService timer = Executors.newSingleThreadScheduledExecutor();
TimerTask timerTask = new TimerTask(LimitApilLinsenerJob.TASK_END_TIME);
logger.debug("起始时间:", new SimpleDateFormat("HH:mm").format(new Date()));
//延时1s后,按3s的周期执行任务
timer.scheduleAtFixedRate(timerTask, LimitApilLinsenerJob.TASK_START_TIME, LimitApilLinsenerJob.TASK_END_TIME, TimeUnit.MILLISECONDS);
}*/
public static class TimerTask implements Runnable{
private final int sleepTime;
private final SimpleDateFormat dateFormat;
public TimerTask(int sleepTime){
this.sleepTime = sleepTime;
dateFormat = new SimpleDateFormat("HH:mm");
}
@Override
public void run() {
logger.debug("任务开始,当前时间:" + dateFormat.format(new Date()));
try {
FlowControlVO flowControl = LimitapimgmtProvider.getLimitapimgmtProvider().findtimeAndthreshold();
logger.debug("start time is: " + flowControl.getStarttime() + "|end time is:" +flowControl.getEndtime());
// 系统登录
JDateTime startTime = DateUtils.parseDate(flowControl.getStarttime(), LimitApiHelper.TIME_INTETERVAL_PARTTERN);
// 系统登录的结束时间
JDateTime endTime = DateUtils.parseDate(flowControl.getEndtime(), LimitApiHelper.TIME_INTETERVAL_PARTTERN);
// 当前时间
JDateTime currTime = new JDateTime();
logger.debug("currTime" + currTime);
if (!(currTime.isAfter(startTime) && currTime.isBefore(endTime))) {
logger.debug("模拟任务执行.....");
logger.debug("自动登出-----");
//此处先做删除登录用户信息,然后保存到用户登录历史信息表 authentication提供删除和保存方法
}
Thread.sleep(sleepTime);
} catch (Exception e) {
logger.debug("This is e {}", e);
}
logger.debug("任务结束,当前时间:" + dateFormat.format(new Date()));
} }
}

定时任务Job的更多相关文章

  1. Java定时任务的常用实现

    Java的定时任务有以下几种常用的实现方式: 1)Timer 2)ScheduledThreadPoolExecutor 3)Spring中集成Cron Quartz 接下来依次介绍这几类具体实现的方 ...

  2. [转]Java实现定时任务的三种方法

    在应用里经常都有用到在后台跑定时任务的需求.举个例子,比如需要在服务后台跑一个定时任务来进行非实时计算,清除临时数据.文件等.在本文里,我会给大家介绍3种不同的实现方法: 普通thread实现 Tim ...

  3. 使用python crontab设置linux定时任务

    熟悉linux的朋友应该知道在linux中可以使用crontab设置定时任务.可以通过命令crontab -e编写任务.当然也可以直接写配置文件设置任务. 但是有时候希望通过脚本自动设置,比如我们应用 ...

  4. C#定时任务组件之FluentScheduler

    FluentScheduler是.NET开源处理定时任务组件 1.任务的创建注册 public static void TaskActionByMinutes(Action action, int c ...

  5. 浅谈 linux 例行性工作 crontab (linux定时任务)

    定时任务大家都挺说过,就好比你手机上的闹钟,到了指定的时候就会响起. 今天在对redis缓存进行定时储存时又操作了一把,发现一些细节,写的不好.大家就将就看吧, 首先 简单介绍一下linux 例行性工 ...

  6. SpringMVC中定时任务配置

    在项目中使用定时任务是常有的事,比如每天定时进行数据同步或者备份等等. 以前在从事C语言开发的时候,定时任务都是通过写个shell脚本,然后添加到linux定时任务中进行调度的. 现在使用Spring ...

  7. springboot(九):定时任务

    在我们的项目开发过程中,经常需要定时任务来帮助我们来做一些内容,springboot默认已经帮我们实行了,只需要添加相应的注解就可以实现 1.pom包配置 pom包里面只需要引入springboot ...

  8. 详解java定时任务

    在我们编程过程中如果需要执行一些简单的定时任务,无须做复杂的控制,我们可以考虑使用JDK中的Timer定时任务来实现.下面LZ就其原理.实例以及Timer缺陷三个方面来解析JavaTimer定时器. ...

  9. [JAVA]定时任务之-Quartz使用篇

    Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用.Quartz可以用来创建简单或为运行十个,百个, ...

  10. 【译】Spring 4 基于TaskScheduler实现定时任务(注解)

    前言 译文链接:http://websystique.com/spring/spring-job-scheduling-with-scheduled-enablescheduling-annotati ...

随机推荐

  1. 安装Redis的PHP扩展

    1.安装phpize(php如果升级到php7,这步会报错,报错参考:https://www.cnblogs.com/clubs/p/10091103.html) yum install php-de ...

  2. Jenkins进阶-用户权限管理(10)

    在版本发布的由于大家的分工不同,所以想通过控制用户的账号达到权限管理,对每个角色进行权限控制,最初通过"项目矩阵授权策略"的策略对每个项目进行单一的权限控制,当时也满足了效果,随着 ...

  3. jmeter分布式测试的坑

    转 : jmeter分布式测试的坑 有关jmeter分布式测试的环境配置,大概就是那样,但是每次想要进行jmeter分布式测试的时候,总是会有各种奇怪的问题,下面整理了一些可能遇到的坑. 只要错误中出 ...

  4. Spring学习之SpringMVC框架快速搭建实现用户登录功能

    引用自:http://blog.csdn.net/qqhjqs/article/details/41683099?utm_source=tuicool&utm_medium=referral  ...

  5. delphi Int64Rec 应用实例

    以下代码可以看到 Int64Rec <--> Int64 procedure TForm1.Button2Click(Sender: TObject); var ii1,ii2,ii3:I ...

  6. 数据仓库专题(2)-Kimball维度建模四步骤

    一.前言 四步过程维度建模由Kimball提出,可以做为业务梳理.数据梳理后进行多维数据模型设计的指导流程,但是不能作为数据仓库系统建设的指导流程.本文就相关流程及核心问题进行解读. 二.数据仓库建设 ...

  7. vagrant box保存路径修改

    add box的时候默认保存在C盘用户文件夹 C:\Users\xxx.vagrant.d,通过设置VAGRANT_HOME环境变量改变默认位置 WIN setx VAGRANT_HOME “X:/y ...

  8. code block自动生成makefile

    安装插件 http://developer.berlios.de/projects/cbmakegen/  然后会在project菜单下面有一个Generate Makefile的选项 点击就行了 如 ...

  9. bzoj5019: [Snoi2017]遗失的答案

    Description 小皮球在计算出答案之后,买了一堆皮肤,他心里很开心,但是一不小心,就忘记自己买了哪些皮肤了.==|||万 幸的是,他还记得他把所有皮肤按照1-N来编号,他买来的那些皮肤的编号( ...

  10. hadoop MapReduce —— 输出每个单词所对应的文件

    下面是四个文件及其内容. 代码实现: Mapper: package cn.tedu.invert; import java.io.IOException; import org.apache.had ...