自己定义了一些自动邮件发送的信息。但是因为某一些原因。其应用部署在一台台式机上面,因为网络原因(大多数为网络)或是电源原因导致定时邮件没有发送成功。
那么必须自己从其他方面进行解决。
因为定时任务是按照时间来进行的,如果超过了这个时间点,下次发送只能等明天这个时间了。所以这样并不是特别合理的方式。
所以改进的方案为:
数据库存储任务字段日期和标志位,如果某天已完成则标志位为确认。
程序启动后,检测当前时间并核对数据库中此时间点及此时间点以前的时间点标志位是否为真。
如果不为真,则相应做业务操作,操作完成设置标志位为真。
对于每天都执行的任务来说是很简单的。
但是对于某些周期性的,比如每周周一执行。那么就需要在数据库中奖每周周一进行提取出来。
这里方案有两种,1,采用传统的java方法,获取每周周一的日期然后存储到数据库。这个方案简单,而且可以执行。2,采用数据库的存储过程。存储过程其实也是一个方法。只是其采用sql的预演。
我这里考虑采用第二种方法。
在进行过程中发现了一些坑。对于mysql存储过程方面用的很少。居然要设定结束符。(大家尽量多参考官方的手册,网络上的很多都不行能执行)
存储过程如下:
DELIMITER //
create or replace procedure looppc()
begin
declare i int;
set i = 1;
repeat
insert into testrepeat(dd) select DATE_FORMAT(subdate(curdate(),date_format(curdate(),'%w')-i*7),'%Y-%m-%d');
set i = i + 1;
until i >= 20
end repeat;
end
//
DELIMITER ;
第一行是要注意的。
然后执行call looppc();即可。
分享到:
相关推荐
MySQL创建存储过程批量插入10万条数据 存储过程 1、首先防止主键冲突,我们清空表。 TRUNCATE table A_student; 2、编写存储过程 delimiter ‘$’; CREATE PROCEDURE batchInsert(in args int) BEGIN declare i int ...
数据库备份的存储过程,创建一个备份库,表自动搜索和复制,可以自定义要备份的表
Java调用数据库存储过程[mysql测试通过]
flutter + SpringBoot + MySql 实现高德地图定位获取位置信息插入数据库并计算出经纬度之间的距离
使用存储过程可以完成所有数据库操作,并可通过编程方式控制上述操作对数据库信息访问的权限。 创建存储过程 创建存储过程可以使用CREATE PROCEDURE语句 语法格式: CREATE PROCEDURE sp_name ([proc_parameter[,......
mysql插入数据库编码解决mysql插入数据库编码解决
mysql经典教程+mysql存储过程讲解 重点讲解Mysql的存储过程,触发器,游标的使用 对mysql不太熟的朋友可以好好学习。。。
# 从MySQL数据库中获取表格的结构信息,然后将其写入Excel文件中。具体实现步骤包括: # 代码实现说明 # 1定义数据库连接信息和表名前缀; # 2创建一个新的Excel工作簿; # 3连接MySQL数据库,并创建游标对象; # 4...
资源包中囊括了MySQL数据库中的存储过程的使用包含的基本结构及日常所使用到的基本函数的使用【包括java端调用存储过程,创建临时表,动态执行sql语句,过程的递归调用,指针循环取数,批量创建表删除表,树状结构的...
mysql的存储过程 删除数据库所有表的存储过程
MYSQL数据库存储过程章节内容详解,思维导图
完整版 MySQL8.0从入门到精通 MySQL数据库教程 第21章 精通MySQL存储引擎(共31页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库教程 第22章 PHP操作MySQL数据库(共16页).ppt 完整版 MySQL8.0从入门到精通 MySQL...
MySQL存储过程编程 可以看看 数据库 存储过程
MySQL数据库函数,触发器,存储过程的视频课程,通俗易懂
.net 读取文本文档的内容,文本文档内容间隔为|,并插入到mysql数据库,从读取文件-入库过程代码
mysql利用存储过程批量添加数据库表随机测试内容
用C++ connector实现mysql以二进制格式将图片存储到数据库以及从数据库获取图片并显示,亲测通过,请放心使用,如有问题可留言给我。
学习如何创建和使用MySql存储过程 在MySQL中,可以定义一段程序存放在数据库中,这样的程序被称为存储过程,存储过程是数据库对象之一。
国开作业《MySQL数据库应用》实验训练1在MySQL中创建数据库和表参考107.pdf国开作业《MySQL数据库应用》实验训练1在MySQL中创建数据库和表参考107.pdf国开作业《MySQL数据库应用》实验训练1在MySQL中创建数据库和表...
用Servlet实现的echarts展示两种不同形式图表的小demo,使用的开发工具是eclipse,...(ps:本人在另一个上传的文件中实现了用SSM框架实现的echarts展示图表的小demo,使用的数据库也是mysql,感兴趣的可以去看看)。