定时任务Job

 1 package com.cfets.ts.u.limitapi.job;
 2 import java.text.SimpleDateFormat;
 3 import java.util.Date;
 4 import java.util.concurrent.Executors;
 5 import java.util.concurrent.ScheduledExecutorService;
 6 import java.util.concurrent.TimeUnit;
 7
 8 import org.junit.Before;
 9
10 import jodd.datetime.JDateTime;
11 import junit.runner.BaseTestRunner;
12
13 import com.cfets.cwap.s.util.db.JdbcManager;
14 import com.cfets.cwap.s.util.db.JdbcProperty;
15 import com.cfets.ts.s.authentication.AuthenticationHelper;
16 import com.cfets.ts.s.log.TsLogger;
17 import com.cfets.ts.u.limitapi.LimitApiHelper;
18 import com.cfets.ts.u.limitapi.service.impl.LimitServiceImpl;
19 import com.cfets.ts.u.limitapi.util.DateUtils;
20 import com.cfets.ts.u.limitapimgmt.LimitapimgmtProvider;
21 import com.cfets.ts.u.limitapimgmt.entity.vo.FlowControlVO;
22
23 public class LimitApilLinsenerJob{
24
25     private static final TsLogger logger = TsLogger.getLogger(LimitServiceImpl.class);
26     public static final int TASK_START_TIME = 1000;
27     public static final int TASK_END_TIME = 5000;
28     /*
29     public static void main(String[] args) {
30         ScheduledExecutorService timer =  Executors.newSingleThreadScheduledExecutor();
31         TimerTask timerTask = new TimerTask(LimitApilLinsenerJob.TASK_END_TIME);
32         logger.debug("起始时间:", new SimpleDateFormat("HH:mm").format(new Date()));
33         //延时1s后,按3s的周期执行任务
34         timer.scheduleAtFixedRate(timerTask, LimitApilLinsenerJob.TASK_START_TIME, LimitApilLinsenerJob.TASK_END_TIME, TimeUnit.MILLISECONDS);
35     }*/
36     public static class TimerTask implements Runnable{
37         private final int sleepTime;
38         private final SimpleDateFormat dateFormat;
39         public TimerTask(int sleepTime){
40             this.sleepTime = sleepTime;
41             dateFormat = new SimpleDateFormat("HH:mm");
42         }
43         @Override
44         public void run() {
45             logger.debug("任务开始,当前时间:" + dateFormat.format(new Date()));
46             try {
47                 FlowControlVO flowControl = LimitapimgmtProvider.getLimitapimgmtProvider().findtimeAndthreshold();
48                 logger.debug("start time is: " + flowControl.getStarttime() +  "|end time is:" +flowControl.getEndtime());
49                 // 系统登录
50                 JDateTime startTime = DateUtils.parseDate(flowControl.getStarttime(), LimitApiHelper.TIME_INTETERVAL_PARTTERN);
51                 // 系统登录的结束时间
52                 JDateTime endTime = DateUtils.parseDate(flowControl.getEndtime(), LimitApiHelper.TIME_INTETERVAL_PARTTERN);
53                 // 当前时间
54                 JDateTime currTime = new JDateTime();
55                 logger.debug("currTime" + currTime);
56                 if (!(currTime.isAfter(startTime) && currTime.isBefore(endTime))) {
57                     logger.debug("模拟任务执行.....");
58                     logger.debug("自动登出-----");
59                     //此处先做删除登录用户信息,然后保存到用户登录历史信息表   authentication提供删除和保存方法
60                 }
61                 Thread.sleep(sleepTime);
62             } catch (Exception e) {
63                 logger.debug("This is e {}", e);
64             }
65             logger.debug("任务结束,当前时间:" + dateFormat.format(new Date()));
66         }
67
68     }
69 }
时间: 2024-12-28 13:16:47

定时任务Job的相关文章

cron-您的定时任务真的执行了吗

今日上午,生产环境怀疑某个cron定时任务没有执行,所以需要分析日志,详细过程如下,记录只为以后工作更加效率,笔者小白,请大神指点. 普及知识: cron是一种机制,crontab是指令        它可以让系统在指定的时间,去执行某个指定的工作,我们可以使用crontab指令来管理cron机制  1.取一段时间日志 语法:sed -n '/开始时间/,/结束时间/p' filename sed -n '/Sep 20 08:50:*/,/Sep 20 09:50:*/p' /var/log/

Linux的定时任务

分两种:一次性的定时任务.周期性的定时任务. 一次性的定时任务,又称at定时任务,命令为atd ,这里d是deamon的首字母,守护的意思,指守护进程:其实很多程序都是以d结尾,如httpd.memcached等等. 一般Linux都默认安装了atd服务,可以通过 chkconfig --list | grep at来查看(据说CentOS 7已经改变,需要使用systemctl来查看,自行查找),或者,使用service atd status来查看. 周期性的定时任务,crontab(使用qu

Spring quartz定时任务service注入问题

今天想单元测试一下spring中的quartz定时任务,一顿折腾,到最后总是发现job类里注入的service为null.一开始还以为spring的配置问题,各种找原因,最后还是确定是没有注入. 就去网上搜搜吧.也找出来一些眉目.简单的理解这个原因是job是在quartz中实例化出来的,不受spring的管理.所以就导致注入不进去了.参考这个文章 http://www.tuicool.com/articles/Qjyamu 找着试试的态度,就按照文章里说的.new一个类 public class

Spring定时任务的实现

项目开发中经常需要执行一些定时任务,比如需要在每天凌晨时候,分析一次前一天的日志信息,借此机会整理了一下定时任务的几种实现方式,由于项目采用spring框架,所以我都将结合spring框架来介绍.一.分类从实现的技术上来进行分类,目前主要有三种技术(或者说有三种产品):Java自带的java.util.Timer类,这个类允许你调度一个java.util.TimerTask任务.使用这种方式可以让你的程序按照某一个频度执行,但不能在指定时间运行.一般用的较少,这篇文章将不做详细介绍.使用Quar

在Linux下利用crond实现一个定时任务并完成一个守护(精灵)进程

一.利用crond实现一个定时任务       在LINUX中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron].cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间.cron的配置文件称为"crontab",是"cron table"的简写. crontab支持两种状态: a.直接编写计划任务: b.使用目录的方式,放在目录里面的都会定时执行,定时目录可在/etc/crontab中设定. 为当前用户创建cron服

定时任务Runnable

说明: 最近做cms想本地修改模板,然后把最新的模板内容存到数据中,所以想到Runnable写个定时任务: 思路: 每隔一分钟查看模板是否有改动,如果有改变执行保存到数据库中: 定时任务核心代码: package com.aih.common.utils; import java.util.concurrent.Executors;import java.util.concurrent.ScheduledExecutorService;import java.util.concurrent.Ti

Linux常用指令---定时任务

linux定时任务crontab命令选项基本只有对用户操作选项:-u 指定用户-l 列出某用户任务计划-r 删除某用户任务-e 编辑某用户任务 查看某一用户的定时任务crontab -u root -l 所要查看所有用户只能根据/etc/passwd文件用户名枚举了用脚本用户定时任务/var/spool/cron/里, 作root去看:cd /var/spool/croncat * eg:如下 12:15,12:30分时将两种文件先生成在238.213这台机器上,在12:45分时将其同步到239

使用轻量级Spring @Scheduled注解执行定时任务

WEB项目中需要加入一个定时执行任务,可以使用Quartz来实现,由于项目就一个定时任务,所以想简单点,不用去配置那些Quartz的配置文件,所以就采用了Spring @Scheduled注解来实现了定时任务.在这里做个备注. spring配置文件  xmlns中加入一段: xmlns:task="http://www.springframework.org/schema/task" 然后xsi:schemaLocation多加下面的内容: http://www.springframe

170627、springboot编程之定时任务

springboot定时任务,比较简单! 1.编写DemoSchedule.java类 package com.rick.common.schedule; import org.springframework.context.annotation.Configuration; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annota

​老男孩教育每日一题-第85天-下面这个脚本直接执行没有问题,在定时任务中有问题,什么原因?

脚本内容: [[email protected] scripts]# cat /server/scripts/ip.sh  #!/bin/bash IP=$(ifconfig eth0 |awk -F "[ :]+" 'NR==2{print $4}') echo "ip:$IP" >> /tmp/ip.txt 定时任务: [[email protected] scripts]# crontab -l * * * * * /bin/bash /serve