定时任务Job
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的更多相关文章
- Java定时任务的常用实现
Java的定时任务有以下几种常用的实现方式: 1)Timer 2)ScheduledThreadPoolExecutor 3)Spring中集成Cron Quartz 接下来依次介绍这几类具体实现的方 ...
- [转]Java实现定时任务的三种方法
在应用里经常都有用到在后台跑定时任务的需求.举个例子,比如需要在服务后台跑一个定时任务来进行非实时计算,清除临时数据.文件等.在本文里,我会给大家介绍3种不同的实现方法: 普通thread实现 Tim ...
- 使用python crontab设置linux定时任务
熟悉linux的朋友应该知道在linux中可以使用crontab设置定时任务.可以通过命令crontab -e编写任务.当然也可以直接写配置文件设置任务. 但是有时候希望通过脚本自动设置,比如我们应用 ...
- C#定时任务组件之FluentScheduler
FluentScheduler是.NET开源处理定时任务组件 1.任务的创建注册 public static void TaskActionByMinutes(Action action, int c ...
- 浅谈 linux 例行性工作 crontab (linux定时任务)
定时任务大家都挺说过,就好比你手机上的闹钟,到了指定的时候就会响起. 今天在对redis缓存进行定时储存时又操作了一把,发现一些细节,写的不好.大家就将就看吧, 首先 简单介绍一下linux 例行性工 ...
- SpringMVC中定时任务配置
在项目中使用定时任务是常有的事,比如每天定时进行数据同步或者备份等等. 以前在从事C语言开发的时候,定时任务都是通过写个shell脚本,然后添加到linux定时任务中进行调度的. 现在使用Spring ...
- springboot(九):定时任务
在我们的项目开发过程中,经常需要定时任务来帮助我们来做一些内容,springboot默认已经帮我们实行了,只需要添加相应的注解就可以实现 1.pom包配置 pom包里面只需要引入springboot ...
- 详解java定时任务
在我们编程过程中如果需要执行一些简单的定时任务,无须做复杂的控制,我们可以考虑使用JDK中的Timer定时任务来实现.下面LZ就其原理.实例以及Timer缺陷三个方面来解析JavaTimer定时器. ...
- [JAVA]定时任务之-Quartz使用篇
Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用.Quartz可以用来创建简单或为运行十个,百个, ...
- 【译】Spring 4 基于TaskScheduler实现定时任务(注解)
前言 译文链接:http://websystique.com/spring/spring-job-scheduling-with-scheduled-enablescheduling-annotati ...
随机推荐
- Eureka Client的使用
1. 新建工程 下一步,名字叫client 选择Cloud Discovery->Eureka Discovery 下一步后,点击完成 2. 在ClientApplication文件中增加Ena ...
- NET设计模式 第二部分 创建型模式(4):工厂方法模式(Factory Method)
工厂方法模式(Factory Method) ——.NET设计模式系列之五 Terrylee,2004年1月2日 概述 在软件系统中,经常面临着“某个对象”的创建工作,由于需求的变化,这个对象的具体实 ...
- 基于结构化平均感知机的分词器Java实现
基于结构化平均感知机的分词器Java实现 作者:hankcs 最近高产似母猪,写了个基于AP的中文分词器,在Bakeoff-05的MSR语料上F值有96.11%.最重要的是,只训练了5个迭代:包含语料 ...
- Qt 中的事件处理(二)
1. 回顾事件传递的过程 ①源头:操作系统 操作系统检测到用户的动作时,就会产生一个系统消息,系统消息就会被发送到正在运行的Qt应用程序中, ②应用程序收到系统消息后, 他会将系统消息翻译成对应的 ...
- PHP代码实现2 [从变量和数据的角度] 1
PHP代码实现2 [从变量和数据的角度] 1 数据类型 1.静态类型语言,比如:C/Java等,在静态语言类型中,类型的检查是在<编译>(compile-time)确定的, 也就是说在运行 ...
- java线程池ThreadPoolExecutor类使用详解
在<阿里巴巴java开发手册>中指出了线程资源必须通过线程池提供,不允许在应用中自行显示的创建线程,这样一方面是线程的创建更加规范,可以合理控制开辟线程的数量:另一方面线程的细节管理交给线 ...
- JAVA常量与变量
顺着箭头的转换为自动转换逆这箭头的转换为强制转换. 常量 关键字FINAL 命名为大写 标识符 1要以字母数字下划线和¥组成 2首字母不能为数字 3不能是JAVA的关键字和 保留字 4数据类型分为基本 ...
- [蓝桥杯]ALGO-79.算法训练_删除数组零元素
从键盘读入n个整数放入数组中,编写函数CompactIntegers,删除数组中所有值为0的元素,其后元素向数组首端移动.注意,CompactIntegers函数需要接受数组及其元素个数作为参数,函数 ...
- VBA Dumper v0.1.4.2, 提取office文档中的VBA代码,监查宏病毒恢复代码(演示版
http://club.excelhome.net/thread-970051-1-1.html VBA Dumper 0.1.4.2更新,填补国内同类程序空白 此程序为演示版,可以在无office的 ...
- [转][Centos]常用命令之:ls和cd
来自:https://www.cnblogs.com/zerotomax/p/7224927.html ls 类似于 dir 在使用centos这个linux系统的时候,我们总是免不了需要查看当前目录 ...