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. jmap MAT内存溢出实践

    jmap MAT内存溢出实践 一.创建Spring Boot工程 进入https://start.spring.io/网站,配置如下图 点击创建工程,然后用Idea或者Eclipse打开 二.创建模拟 ...

  2. RedHat6.5安装Spark单机

    版本号: RedHat6.5   RHEL 6.5系统安装配置图解教程(rhel-server-6.5) JDK1.8      http://blog.csdn.net/chongxin1/arti ...

  3. 多层级sql查询

    SELECT ( SELECT ) FROM t_app_user WHERE parent_user_id = t.user_id /*多层级,t.user_id */ ) AS directCou ...

  4. Piwik学习 -- 插件开发

    这个版本的piwik比较旧,此文档仅作参考 最近为了给自己的web系统添加一个运营数据分析和展示的功能,本打算自己纯手工打造,但是发现成本太高,时间和精力方面不允许.在网上查阅了一些资料,发现目前有许 ...

  5. FIFO 的控制逻辑---verilog代码

    FIFO 的控制逻辑---verilog代码 //fifo的例化 wire fifo_full; wire fifo_empty; : ] fifo_dout; :]rd_data_count; :] ...

  6. linux 修改mac地址,干坏事必备

    首先关闭无线 wlan0 ifconfig wlan0 down 修改mac地址 macchanger -m [MAC] [INTERFACE] 例如:macchanger -m ::::: wlan ...

  7. Speeding Up The Traveling Salesman Using Dynamic Programming

    Copied From:https://medium.com/basecs/speeding-up-the-traveling-salesman-using-dynamic-programming-b ...

  8. C 500uS状态机架构

    main int main(void) { InitSys(); SoftwareInit(); ) { if(P500usReq) { P500usReq = ; P500us(); } Modbu ...

  9. materializecss的水波纹效果

    参考http://www.materializecss.cn/waves.html <html lang="en"> <head> <meta cha ...

  10. 【git】之push异常

    Push rejected: Push to origin/master was rejected 打开git shell面板 $ git pull origin master --allow-unr ...