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. 获取TypeError:__init __()缺少1个需要的位置参数:'on_delete'当试图添加父表后面的子表

    解决办法:https://stackoverflow.com/questions/44026548/getting-typeerror-init-missing-1-required-position ...

  2. MySQL程序之mysqlshow详解

    mysqlshow命令详解 显示MySQL数据库的结构(数据库.表和列) 如果最后一个参数包含shell或SQL通配符(*,?,%,_)将显示通配符匹配的内容. 如果没有给定数据库,则显示所有匹配的数 ...

  3. 解决 Sublime text3 中文显示乱码问题【亲测可用】

    一.安装包管理器 使用Ctrl+`快捷键或者通过View->Show Console菜单打开命令行,粘贴如下代码   import urllib.request,os; pf = 'Packag ...

  4. Windows系统下MySQL数据库出现Access denied for user 'root'@'localhost' (using password:YES) 错误

    Windows系统下MySQL数据库出现Access denied for user 'root'@'localhost' (using password:YES) 错误,(root密码错误) 处理方 ...

  5. C#中winform使用相对路径读取文件的方法

    http://cache.baiducontent.com/c?m=9f65cb4a8c8507ed4fece763105392230e54f73b6cd0d3027fa3cf1fd579080101 ...

  6. mongodb 安装(官方说明链接)

    这里面有很全的 https://docs.mongodb.com/manual/tutorial/install-mongodb-on-windows/ 先截个图吧,都是标准的流程,按照操作,是可以安 ...

  7. NGINX 资料

    查看资料详情     nginx

  8. Lucene 4.3 - Facet demo

    package com.fox.facet; import java.io.IOException; import java.util.ArrayList; import java.util.List ...

  9. Boost:shared_memory_object --- 共享内存

    什么是共享内存 共享内存是最快速的进程间通信机制.操作系统在几个进程的地址空间上映射一段内存,然后这几个进程可以在不需要调用操作系统函数的情况下在那段内存上进行读/写操作.但是,在进程读写共享内存时, ...

  10. 【C#】C#操作Excel文件(转)

    实现C#与Excel文件的交互操作,实现以下功能: 1.DataTable 导出到 Excel文件 2.Model数据实体导出到 Excel文件[List<Model>] 3.导出数据到模 ...