timer 公司内部用法

使用Timer对内部低速时钟校准方法 MCU内部低速时钟校准 阅读详情

init中

WebApplicationContext wac = WebApplicationContextUtils.getRequiredWebApplicationContext(servletContext);

			//创建 线程
			Timer timer = new Timer();
			timer.schedule(new ReinitializationSerialNumber(wac), getDayTime(),24 * 60 * 60 * 1000);

public Date getDayTime() {
		Calendar calendar = Calendar.getInstance();
		calendar.set(Calendar.HOUR_OF_DAY, 23);
		calendar.set(Calendar.MINUTE, 59);
		calendar.set(Calendar.SECOND, 59);
		return calendar.getTime();
		
	}

继承TimerTask创建类

package gts.erp.timer;

import gts.erp.service.ERPUtilServiceImpl;

import java.util.TimerTask;

import org.springframework.web.context.WebApplicationContext;

public class ReinitializationSerialNumber extends TimerTask{
	
	private WebApplicationContext wac;
	
	public ReinitializationSerialNumber(WebApplicationContext wac) {
		this.wac = wac;
	}
	
	public void run() {
		ERPUtilServiceImpl erpUtilServiceImpl = (ERPUtilServiceImpl)wac.getBean("erpUtilService");
		erpUtilServiceImpl.reinitializationSerialNumber();
		
	}

}


执行的方法

public void reinitializationSerialNumber() {
		// 读取数据 --> TN_SERIAL_NUMBER
		TableBean serialNumberTablebean = new TableBean();
		serialNumberTablebean = this.getBaseDAO().queryForTableBean(new ClassPOJO("TN_SERIAL_NUMBER"));
		// CN_CYCLE_FLAG 是否    年
		boolean isYear = isYearStart();
		// CN_CYCLE_FLAG 是否    月
		boolean isMonth = isMonthStart();
		// CN_CYCLE_FLAG 是否    周
		boolean isWeek = isWeekStart();
		//定义 更新的TableBean
		TableBean updateTableBean = new TableBean("TN_SERIAL_NUMBER");
		//说明该TableBean 是用于更新
		updateTableBean.setDbTableDataOperationId(TriangleDefinition.DATABASE_TABLE_DATA_OPERATION_UPDATE);
		for (int i = 0; i < serialNumberTablebean.size(); i++) {
			RowBean rowBean = serialNumberTablebean.get(i);
			String cycleFlag = rowBean.getCellBeanValue("CR_CYCLE_FLAG");
			//类型是年 且当前日期符合  将rowBean添加到TableBean中
			if (ERPDefinition.LOOKUP_SERIAL_NUMBER_CYCLE_YEAR.equals(cycleFlag) && isYear) {
				rowBean.setCellBeanValue("CN_SN", "0");
				updateTableBean.addRowBean(rowBean);
			} else if (ERPDefinition.LOOKUP_SERIAL_NUMBER_CYCLE_MONTH.equals(cycleFlag) && isMonth) {
				rowBean.setCellBeanValue("CN_SN", "0");
				updateTableBean.addRowBean(rowBean);
			} else if (ERPDefinition.LOOKUP_SERIAL_NUMBER_CYCLE_WEEK.equals(cycleFlag) && isWeek) {
				rowBean.setCellBeanValue("CN_SN", "0");
				updateTableBean.addRowBean(rowBean);
			} else if (ERPDefinition.LOOKUP_SERIAL_NUMBER_CYCLE_DAY.equals(cycleFlag)) {
				rowBean.setCellBeanValue("CN_SN", "0");
				updateTableBean.addRowBean(rowBean);
			}
		}
		this.getBaseDAO().saveOrUpdateTableBean(updateTableBean);
	}
应用

 * 根据key cycleFlag(周期标志) 查询流水号
	 * 存在 根据key 更新流水号
	 * 不存在 插入 
	 * @param String key,String cycleFlag(周期性标志)
	 * @return returnData 流水号
	 */
	public synchronized String getSerialNumber(String key, int cycleFlag) {
		String currentTime = String.valueOf(ERPBLHelper.getCurrentTime());
		String sn_default = "1";
		String returnData = sn_default;
		try {
			CondSetBean csb = new CondSetBeanJustAnd();
			csb.addCondBean(new CondBeanEqual("CN_NAME", key));
			csb.addCondBean(new CondBeanEqual("CR_CYCLE_FLAG", String.valueOf(cycleFlag)));
			FormBean serialNumberFB = this.getBaseDAO().queryForFormBean(new ClassPOJO("TN_SERIAL_NUMBER"), csb);
			if (serialNumberFB != null && serialNumberFB.size() > 0) {
				returnData = String.valueOf(Long.parseLong(serialNumberFB.getCellBeanValue("CN_SN")) + 1);
				serialNumberFB.setCellBeanValue("CN_SN", returnData);
			} else {
				// 得到一个默认管理员的ID
				CondSetBean csbUser = new CondSetBeanJustAnd();
				csbUser.addCondBean(new CondBeanEqual("CR_TYPE_ID", TriangleDefinition.USER_TYPE_ADMIN_META));
				TableBean userTableBean = this.getBaseDAO().queryForTableBean(new ClassPOJO("ST_USER"), csbUser);
				String userId = userTableBean.get(0).getCellBeanValue(TriangleDefinition.COLUMN_NAME_CN_ID);

				serialNumberFB = new FormBean("TN_SERIAL_NUMBER");
				serialNumberFB.addCellBean(new CellBean("CN_NAME", key));
				serialNumberFB.addCellBean(new CellBean("CR_CYCLE_FLAG", String.valueOf(cycleFlag)));
				serialNumberFB.addCellBean(new CellBean("CN_SN", sn_default));
				serialNumberFB.addCellBean(new CellBean("CR_CREATE_USER_ID", userId));
				serialNumberFB.addCellBean(new CellBean("CN_CREATE_DATETIME", currentTime));
				serialNumberFB.addCellBean(new CellBean("CR_MODIFY_USER_ID", userId));
				serialNumberFB.addCellBean(new CellBean("CN_MODIFY_DATETIME", currentTime));
			}
			this.getBaseDAO().saveOrUpdateFormBean(serialNumberFB);
		} catch (Exception e) {
			TriangleBLHelper.printExceptionLog(log, e);
			e.printStackTrace();
			throw new RuntimeException("**** Run time Exception!****");
		}
		return returnData;
	}




C#中Forms.Timer、Timers.Timer、Threading.Timer的用法分析 一、在.NET Framework里面提供了三种Timer(计时器) ① System.Windows.Forms.Timer ② System.Timers.Timer ③ System.Threading.Timer 阅读详情

相关推荐

java中timer用法

所有类型的 Java 应用程序一般都需要计划重复执行的任务。企业应用程序需要计划每日的日志或者晚间批处理过程。一个 J2SE 或者 J2ME 日历应用程序需要根据用户的约定计划闹铃时间。不过,标准的调度类 Timer 和 TimerTask 没有足够的灵活性,无法支持通常需要的计划任务类型。在本文中,Java 开发人员 Tom White 向您展示了如何构建一个简单通用的计划框架,以用于执行任意复杂的计划任务。

Timer定时器用法详解

先看API和结论: /** timer总结: Timer timer = new Timer(); //其中会调用this("Timer-" + serialNumber());, 即它以Timer+序列号为该定时器的名字 Timer timer = new Timer(String name); //以name作为该定时器的名字 Timer time...

Japathy 11万+

大红球预警版-精选+自定义板块监控

这是一款简单易用的股票大单资金监控插件,兼容通达信软件,可嵌入分时图或定制版面。它以红绿圆球直观显示主力买卖情况(红球为买,绿球为卖),支持300万以上大单语音播报。插件提供实时资金流向分析、多股同时监控、自定义预警条件等功能,无需L2账号。用户可自由切换图形/列表模式,监控特定板块,并配合幻影软件实现自动交易。虽然上涨股通常红球占优,但需结合其他指标综合判断。该插件完全免费,包含详细视频教程,适合新手使用。

guleba的博客 1795

定时器Timer使用

一、定时器Timer基本使用 Timer timer = new Timer(); timer.schedule(TimerTask, Date);,任务需要用TimerTask封装,重写TimerTask中的run方法 Timer timer = new Timer(boolean);,传值true表示Timer线程为守护线程,主线程结束跟随结束。默认值为false,主线程结束任务执行完毕仍未结束线程。 当前时间在Date之后则立即执行,在Date之前则等到指定时间后执行 同一Timer调用的不同定时任

weixin_43960044的博客 6141

数据结构与算法 —— 最短路径Dijkstra算法(迪杰斯特拉)详细图解以及python实现

前两章我们讲到了关于图的基本知识,和广度/深度优先搜索。本章,我们将介绍加权图和最短路径的相关知识。最短路径和最小生成树是图论中常见的问题。最短路径是指在一个图中找到两个节点之间的最短路径,最小生成树是指在一个图中找到一个连通子图,使得所有节点都能够互相到达,且总权值最小。最短路径算法常见的有floyd算法(弗洛伊德算法)和 dijkstra算法(迪杰斯特拉)。本文只介绍dijkstra算法。最短路径运用非常广泛,比如在导航系统中,确定两个地点间哪条路线最短;

‘’ 2万+

深入解析i2cdetect:从基础命令到高级读写操作

本文深入解析Linux下i2cdetect工具,从基础安装、总线扫描到高级读写操作。作为i2c-tools的核心组件,i2cdetect是硬件调试的得力侦探,能快速识别I2C总线上的设备地址。文章还涵盖了i2cdump、i2cset、i2cget等进阶工具,并介绍了如何在C程序中调用读写接口进行嵌入式开发,是掌握I2C通信调试的实用指南。

weixin_29189987的博客 372

Spring MVC模式下,获取WebApplicationContext的工具类 方法

在已有的注解类型下,获取WebApplicationContext的工具类 通过  WebApplicationContextUtils.getRequiredWebApplicationContext(ServletContextEvent sce);可以获得spring的单例webContext,这种方法是非常方便的, 如果涉及到底层架构师的级别,架设一套高可定制行的架构,使用泛型管理所有

当富网络 4487

【Python学习日记:PySide6】【持续更新】

说明:PySide6 是 Qt for Python 的一部分,是一个 Python 绑定库,可以用来创建跨平台的 GUI 应用程序。它将 Qt 框架的丰富功能带到了 Python 环境中,允许开发者使用 Python 编写 GUI 应用程序。

XLQ的博客 8047

WebApplicationContext wac=WebApplicationContextUtils.getWebApplicationContext(this.getServletContext...

在jsp中出现 提取的代码: <%WebApplicationContext wac = WebApplicationContextUtils.getWebApplicationContext(this.getServletContext());UserDao userDao = (UserDao) wac.getBean("userDaoImpl");...

weixin_30848775的博客 555

Nuxt - 项目打包部署及上线到服务器流程(SSR 服务端渲染)

Nuxt-项目打包部署及上线到服务器流程,详细介绍Nuxt项目上线部署,服务端渲染(ssr)项目及nuxt项目部署过程,nuxt项目打包上线,Nuxt项目的部署教程,NuxtJS项目部署方案,Nuxt如何部署到线上,nuxt项目部署篇,Nuxt项目搭建到Nuxt项目部署,Nuxt项目从开始到部署,详细教程。服务器部署nuxt项目,nuxt服务端部署上线,在服务器上部署nuxt项目,NuxtJS项目——命令和部署。......

🏆 前端领域优质创作者 1万+

2026滑块验证码终极实战:缺口检测算法+人机轨迹模拟,识别率从60%飙升至95%全方案

**摘要:2026年AIGC技术发展导致传统验证码失效,滑块验证码成为主流防护手段。本文深入分析了传统方案识别率低的原因,并提出多级检测融合和行为拟合优化方案。通过图像预处理优化、三级缺口检测引擎(差分图像法、Hu矩轮廓匹配、YOLOv8n模型兜底)将识别率提升至99.2%。同时针对轨迹模拟环节,设计了包含抖动特征、时间随机性和个体差异的行为模型,使通过率从12%提升至87%。该方案解决了传统方法在缺口定位精度和轨迹真实性方面的核心痛点,为应对新一代验证码风控提供了完整的技术框架。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1902

ngx_cycle_init的实现

main函数主要完成的是对ngx_cycle_t结构体变量的一个初始化 ngx_cycle_t * cycle ,init_cycle cycle=ngx_cycle_init(&init_cycle) 流程: 调用ngx_timezone_update()更新时区,调用ngx_time_update()更新时间 创建大小为NGX_CYCLE_POOL_SIZE=16384B的内存池,并从

我的程序人生 375

机器学习与深度学习基础概念

本篇主要介绍机器学习主要概念,包括不限于标签、特征、样本、训练、模型、回归模型、分类模型、泛化、过拟合、预测、平稳性、训练集、验证集、测试集。

专注大数据与人工智能技术分享,欢迎私信加群互相学习! 3万+

RT-Thread定时器timer的用法和内部实现

RT-Thread Timer是一个用于执行定时操作的组件。你可以使用它来在一定的时间间隔后执行一个函数,或者在特定的时间点执行一个函数。

艾格北峰嵌入式 4652

芯片测试:WAT、CP、FT

最近部门来了一个日本回来的同事,虽然他尽量用非常Poor的中文给我解释一些东西,其中还夹杂着一些英文让我很受挫,于是最近来学一下WAT中的常用的单词含义。直接去查缩写、查单词很难去记住,要把具体的东西放在具体的场景,引发知识的连接才会在脑子里留下一定的映像。感兴趣的一起来学习一下这篇不错的文章吧。注释是我查询记录,如有不妥,欢迎指出修正。

叫好与叫座虽然不是对立面,但想在同一个作品中达到双重效果很难。 5091

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

c语言中timer类的用法,c中timer的用法

c中timer的用法的用法你知道吗?下面小编就跟你们详细介绍下c中timer的用法的用法,希望对你们有用。c中timer的用法的用法如下:关于C#中timer类 在C#里关于定时器类就有3个1.定义在System.Windows.Forms里2.定义在System.Threading.Timer类里3.定义在System.Timers.Timer类里System.Windows.Forms.Ti...

weixin_36261449的博客 3752

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

C#中timer类的用法

C#中timer类的用法 1、System.Windows.Forms.Timer 实现按用户定义的时间间隔引发事件的计时器。此计时器最宜用于 Windows 窗体应用程序中,并且必须在窗口中使用。 2、System.Threading.Timer 提供以指定的时间间隔执行方法的机制。无法继承此类。 3、System.Timers.Timer 在应用程序中生成定期事件。 这三个定时器位于不同的命名空间内,上面大概介绍了3个定时器的用途,其中第一个是只能在Windows窗体中使用的...

北京谢吉华的专栏 7677

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

C# Timer用法及实例详解

1.C# Timer用法及实例详解http://developer.51cto.com/art/200909/149829.htmhttp://www.cnblogs.com/OpenCoder/archive/2010/02/23/1672043.html关于C# Timer类  在C#里关于定时器类就有3个C# Timer使用的方法1.定义在System.Windows.Forms里C# Ti...

qq_29676571的博客 3万+

C#Winfrom中Timer控件的用法

在Winfrom界面设置中经常会涉及到定时器相关操作,我们可以使用Timer控件来实现 Timer用法 一、设置 1.Interval属性:N毫秒执行一次 timer1_Tick 事件(这里设置1000毫秒,即1秒) 2.注册timer_Tick事件,双击Timer控件或在Timer事件中手动注册 3.完成timer事件(每一个计时单位执行一次,上文设置Interval为1秒,则1秒执行一次) readonly int endsecond = 30; int begin

小赖的博客 4324

Timer用法

在看多线程,先记录一下Timer的基本用法。 package com.example.demo.concurrents; import java.sql.Time; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*;...

大萝卜大大大萝卜的博客 354

c语言中timer类的用法,c中timer控件的用法

c中timer控件的用法的用法你知道吗?下面小编就跟你们详细介绍下c中timer控件的用法的用法,希望对你们有用。c中timer控件的用法的用法如下:关于C#中timer类 在C#里关于定时器类就有3个1.定义在System.Windows.Forms里2.定义在System.Threading.Timer类里3.定义在System.Timers.Timer类里System.Windows.Fo...

weixin_40009393的博客 857

四种Timer的区别和用法

四种Timer的区别和用法 1、System.Threading.Timer 线程计时器 1、最底层、轻量级的计时器。基于线程池实现的,工作在辅助线程。 2、它并不是内在线程安全的,并且使用起来比其他计时器更麻烦。此计时器通常不适合 Windows 窗体环境。 构造函数:public Timer(TimerCallback callback, object state, int dueTi...

Herman_chao博客 2077
上一篇: timer.schedule —— timer定时器的用法
下一篇: jQuery中的.bind()、.live()和.delegate()之间区别分析
ole_triangle_java
博客等级 码龄10年 82粉丝 83原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值