mysql的定时任务学习

原创 2016年09月02日 10:11:01

最近弄公司的一个电商项目时遇到客户的一个需求:每天定时返还会员红包。这个电商项目,用的是ecshop的框架。由于ecshop是项目单一入口的mvc框架,我就想着在项目的入口文件index.php处触发windows定时任务。

大致思路是这样的:每天定时去访问入口文件,在入口文件中判断访问的时间,如果满足条件,则发放红包,并把红包发放状态修改为已发放。再建立一个文件,用于每天红包发放状态的重置操作。

思路有了就开始动手做,首先代码实现,接着在一个服务器上编写windows的定时任务。测试一下,OK,大功告成。紧接着就是给项目经理说,红包自动返功能已经实现,上线,再次测试,最后就是告知客户,红包自动返功能已经实现。

在这里我要先说明一下,我这里是采用windows定时任务+.php程序定时访问页面实现的红包自动返功能。

不料第二天早上刚来就接到了客户的电话,今天的红包怎么没返啊?

我第一感觉就是不应该啊,本地和远程测试都没问题啊。我首先看了下远程的定时任务,正常执行了,程序中设置的时间也OK,那是什么问题呢?仔细想了一下,会不会是DNS解析出了问题?因为是两个不同的服务器(项目所在的服务器与建立的定时任务并不在一个服务器上),域名解析为ip地址的时间太长,导致失败。

于是,我又换了一种思路:在电商项目的服务器上建立定时任务,这次,我没采用域名访问(当然也可以设置服务器上的hosts文件,省去域名解析过程),而是直接采用了localhost访问。心想着,这次应该没问题了吧?测试,上线。不料第二天客户又反馈说红包没发放。

这次是彻底崩溃了,定时任务执行正常,还能是什么问题?莫非是数据库服务器的问题?在这里说明一下,我们采用的是mysql数据库。

事到如今,只有一种方法能够保证功能的稳定了:在mysql数据库中创建定时任务,这样就省去了域名解析、程序与数据库的交互,只要数据库服务器正常启动着,定时任务就可以正常执行。

OK,最终解决了问题。



版权声明:本文为博主原创文章,未经博主允许不得转载。如果感觉文章哪里写的不对或者存在疑问,欢迎留言,共同学习、进步!

mysql定时任务的实现

1,需求:每天晚上10点到早上5点,每10分钟中定时执行存储过程。 2,实现方式:实现方式有两种:        一种是比较常规的,用mysql的event定时任务,先介绍一下mysql中event定...
  • erdongritian
  • erdongritian
  • 2016年11月14日 15:45
  • 4394

mysql 定时任务创建开启修改关闭实现

mysql定时任务简单例子   ? 1 2 3 4 5 6 7 8 9     如果要每30秒执行以下语句:   [sql] u...
  • shukebai
  • shukebai
  • 2016年05月19日 17:15
  • 2012

Mysql定时任务

1. 存储过程的设计实验 -- 数据库中表的信息查询 ##SELECT TABLE_NAME,TABLE_ROWS, CREATE_TIME FROM INFORMATION_SCHEMA.TABLE...
  • zhangyifei521
  • zhangyifei521
  • 2017年02月21日 17:19
  • 513

MySQL定时任务的开启

查看event是否开启: SHOW VARIABLES LIKE ‘event%’; SELECT @@event_scheduler; SHOW PROCESSLIST; 如果看到e...
  • shuyeshangdemayi
  • shuyeshangdemayi
  • 2016年06月14日 10:33
  • 919

mysql 数据库Event定时任务使用详解(Navicat 及直接SQL语句创建)

一、使用Navicat创建Event 1、创建一个存储过程让定时任务Event调用: 打开Navicat查询界面: 在上述存储过程中将自定义的sql语句填写到BEGIN与EN...
  • tantexian
  • tantexian
  • 2015年12月15日 16:58
  • 15295

mysql 定时任务使用说明

由于今天项目需求的原因需要在mysql中定时调用一个存储过程,进行数据的预警查询,并每天定时将检索出来的预警数据插入到新表中。由于本人是sql小白,所以百度了一下,具体使用方法做个记录: 首先查询当...
  • superdog007
  • superdog007
  • 2016年03月21日 15:20
  • 579

MYSQL 定时任务调用存储过程

创建存储过程:drop procedure IF EXISTS case_inter_sum; create procedure case_inter_sum() begin DECLARE ca...
  • z317026263
  • z317026263
  • 2016年01月26日 16:43
  • 1469

Navicat设定mysql定时任务

有个需求:将一张表的前一天的数据抽取到另一张表中,使用Mysql数据库的客户端Navicat配置 第一步,创建过程cust_report,直接在查询窗口中执行,保存后函数列表中就会出现。 第二...
  • zhenzhendeblog
  • zhenzhendeblog
  • 2016年01月28日 13:33
  • 1865

查看定时任务的执行情况

cat /var/spool/mail/root
  • dream_ll
  • dream_ll
  • 2017年03月16日 18:07
  • 578

mysql实现定时器任务(业务场景每天统计订单数)

下面是定时器实现的代码(任务完全由mysql完成)//查看event是否开启(mysql重启就默认关闭了--OFF代表关闭) show variables like 'event_scheduler'...
  • u014284252
  • u014284252
  • 2015年12月11日 14:37
  • 1277
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:mysql的定时任务学习
举报原因:
原因补充:

(最多只允许输入30个字)