MySql事件调度(Event Scheduler)

Spring AI Alibaba Skill 实战:定义、注册与渐进式披露的企业级落地 摘要:很多团队在接入大模型时,第一步做到的是“能对话”,第二步遇到的瓶颈却是“不能可靠执行”。Skill 的本质不是给模型多几个函数,而是把企业系统中的可控能力,以可治理、可审计、可扩展的方式交给 Agent。本文围绕 Spring AI Alibaba Skill 的定义、注册与渐进式披露,结合电商客服与售后场景,系统讲清楚其底层原理、架构设计、生产级实现、高并发治理与工程实践。@Component@Tool(description = "根据订单号查询订单状态、支付状态和物流状态")扫描包含。 阅读详情

原文来自:http://ramonblog.cloudfoundry.com/blog/4fd8d0702de195990a000002

启用event_scheduler

MySql的事件调度是在5.1引入的,从而可以将数据的定时操作放在数据库级别,而不是通过其它外部的程序定时执行。要定义Event必须先开启event_scheduler。

-- 查看event_scheduler状态, ON表示开启,Off表示关闭
show variables like 'event_scheduler';

-- 开启event_scheduler  
set global event_scheduler=1;

这里的global表示是整个数据库级别开启,还有其它的级别,譬如Session。更多的参考http://dev.mysql.com/doc/refman/5.6/en/events-configuration.html.

创建Event

delimiter |
CREATE EVENT Aggregate_Event
    ON SCHEDULE 
        EVERY 1 DAY
    COMMENT 'Aggregate Event data to AppEventDate'
    DO
        BEGIN
            UPDATE Event set readyToAggregated=1 WHERE readyToAggregated=0;
            INSERT INTO AppEventDate(name, app, count, totalTime, timestampUTC)  
            SELECT name, app, SUM(count), SUM(totalTime), timestampUTC FROM Event WHERE readyToAggregated=1 GROUP BY app, name, DATE_FORMAT(timestampUTC, '%Y-%m-%d');
            UPDATE Event set readyToAggregated=2 where readyToAggregated=1;
        END |
delimiter ;

开始的delimiter |表示修改语句的分隔符为'|',默认是';'。这样做的目的是为了将后面的语句能够一次性发到服务器。其实这个是在mysql的控制台下用的,如果你是用Mysql Workbench根本不需要这样,只需要选择所有的语句,按执行所选语句的命令即可。

这里创建的事件名字为'Aggregate_Event',每天执行一次,第一次是从语句创建的时候开始执行。当然可以在EVERY 1 DAY后面加上STARTS来定义第一次执行的时间。如:

STARTS CURRENT_TIMESTAMP + INTERVAL 1 HOUR

表示开始执行时间是当前时间之后的1小时。你也可以指定特定时间执行,如STARTS '2012-6-14 14:20:00',但是注意这个时间是相对于你的timezone设置来说的,你可以运行'SHOW VARIABLES LIKE 'timezone''来查看你的time_zone设置,譬如我的是UTC,并不是我本地的时区+8,所以转成本地时间则是2012-06-14 22:20:00。

后面的语句则是你需要实现的SQL语句了。

增加事务(Transaction)

增加事务自然是为了保证一致性,即要么都成功,要么失败回滚(Rollback)。MySql的事务定义有一些不同,具体的看下面的例子。

-- 创建测试表
CREATE TABLE TT(id int, PRIMARY KEY (id));
CREATE TABLE EventLog (id int(10) unsigned NOT NULL AUTO_INCREMENT, log varchar(200), created TIMESTAMP, PRIMARY KEY (id));

-- 创建Event,并增加事务机制
delimiter |
CREATE EVENT testEvent
ON SCHEDULE
    EVERY 1 MINUTE
DO
    BEGIN

        DECLARE EXIT HANDLER FOR SQLEXCEPTION
        BEGIN
            ROLLBACK;
            INSERT INTO EventLog (log) values ('aggregate fail');
        END;

        START TRANSACTION;
            INSERT INTO tt (id) values (1);
        COMMIT;
    END |
delimiter ;

首先我们创建了两个要用的表,然后创建Event。这里的不同是在BEGIN...END之间增加了一个Handler的声明,该声明是用来处理所有SQLEXCEPTION的,具体来说,首先是回滚,然后是插入失败记录。而Event的正常操作则是在START TRANSACTION;和COMMIT之间,如果不发生异常,则会提交事务。关于更多Handler的内容可以参考http://dev.mysql.com/doc/refman/5.6/en/declare-handler.html.

查看和修改EVENT

Event创建之后,会将相关信息存储在mysql.event表里面,所以通过下面的SQL语句可以看到详细信息:

SELECT * FROM mysql.event;

重要的信息包括name, intervalvalue, intervalfield, status, comment.开始创建的event相应的值就是:Aggregate_Event, 1, DAY, ENABLED,'Aggregate Event data to AppEventDate'.

停止Event调度,则是运行下面的语句.之后你再利用上面的语句查看Event的信息会发现其status已经变成disabled了。

ALTER EVENT Aggregate_Event DISABLE;

删除Event则是:

DROP EVENT Aggregate_Event;

更多信息参考官方文档: http://dev.mysql.com/doc/refman/5.1/en/create-event.htmlhttp://dev.mysql.com/doc/refman/5.1/en/alter-event.html

一些有趣的事情

  1. TIMESTAMP数据类型 特别的,在定义Timestamp时,可以指定自动初始化和自动更新。如果单独指定其中任意一个,则意味着关闭另一个。如果两个都不指定,则意味着两个同时开启。所以在开始的Event定义里面犯了一个错误. 表Event有一个Timestamp字段timestampUTC,我的目的是,定时将Event中的数据Aggregate起来存在AppEventDate表里面去,之后将操作过的Event数据删除掉。由于在事件调度的时候,Event表还是可能发生数据插入的情形,为了标明哪些数据是聚合过的,所以用字段readyToAggregated表示。但是问题在于Event表定义列timestampUTC的时候没有指明自动初始化和自动更新,导致于默认情形下两者都支持,所以在第一个sql语句update的时候,所有的timestampUTC字段都成了当前时间,显然就导致后面的聚合语句全部出错了。因此解决办法就是将该字段指明为自动初始化。
从零到一:手把手教你用DaVinci Configurator配置一个完整的AUTOSAR接口通信实例 本文详细介绍了如何使用DaVinci Configurator工具配置AUTOSAR接口通信实例,从环境准备到SWC端口定义、BSW模块配置,再到通信验证的全过程。通过实战案例'车窗控制'功能模块,帮助开发者快速掌握AUTOSAR架构下的接口通信配置技巧,提升汽车电子软件开发效率。 阅读详情

相关推荐

FreeSWITCH编译安装详细文档

本文档详细介绍了在Ubuntu 22.04系统上从源码编译安装FreeSWITCH的完整流程。主要内容包括:1)系统环境准备和依赖库安装;2)关键依赖库spandsp和sofia-sip的编译安装;3)FreeSWITCH源码的特定版本(v1.6.0)编译配置,包括禁用SignalWire模块的配置方法;4)系统服务配置,包括创建专用用户、设置权限以及配置systemd服务文件。文档特别提供了版本控制说明,确保后期能切换到相同的版本环境,并附有详细的命令操作步骤和注意事项。

唯有代码让我痴狂 1369

mysql workbench在哪_MySQL workbench 在哪里创建event?

展开全部在File -> New Query Tab中通过以下SQL可以创建createeventmy_eventonscheduleevery1minutedoselectnow();workbench的schemas窗格中看不到event, 可以在窗口中查询information_schema.event看到已经创建的eventselect*frominform...

weixin_39967598的博客 1552

LVGL移植教程(正点原子)

学习正点原子LVGL移植教程,根据视频教程写的博客

papalila的博客 939

mysql定时任务

mysql 定时任务

花飘万家雪 582

Ubuntu22.04安装ROS1

代表使用 2 线程进行编译,可以根据 CPU 适当调整。如果出现小乌龟窗口,说明安装成功 🎉!启动成功,则打开另一个终端,测试。需要解决一些兼容性问题,因为。由于 Ubuntu 22.04。过程,确保成功安装。

asafriend的博客 4643

AHB总线协议

1. 简介         AHB总线规范是AMBA总线规范的一部分,AMBA总线规范是ARM公司提出的总线规范,被大多数SoC设计采用,它规定了AHB (Advanced High-performance Bus)、ASB (Advanced System Bus)、APB (Advanced Peripheral Bus)。AHB用于高性能、高时钟频率的系统结构,典型的应用如ARM核与系统内

ivy_reny的专栏 8万+

mysql的定时执行任务

mysql的定时执行任务 一、查看事件的状态 代码如下 show variables like '%event_sche%';-- 查询mysql的事件的状态,默认是OFF 启动事件 set global event_scheduler=1;-- 设置事件为启动状态,数据库重启后失效 二、创建存储过程 在mysql workbench工具的数据库中创建存储过程的方法是选择“stored pro...

Garnett_zk的博客 983

【我的Android进阶之旅】异常: Problems reading data from Binary store in Local\Temp\gradlexxx.bin (exist: true)

一、异常描述 今天开个会议,电脑自动关机了,重启电脑之后,打开Android Studio,编译代码,就编译失败,如下所示:异常提示 : Caused by: java.lang.RuntimeException: Problems reading data from Binary store in C:\Users\000\AppData\Local\Temp\gradle6337489649031706149.bin (exist: true) Caused by: java.lang.Runtime

字节卷动 3822

结构力学本构模型:复合材料模型:复合材料热力学行为技术教程_2024-08-07_06-54-53.Tex

热塑性复合材料是一种由热塑性树脂基体和增强纤维组成的复合材料。与热固性复合材料不同,热塑性复合材料在加热时可以软化,冷却时硬化,这一过程可以重复进行,因此它们具有可回收和可再加工的特性。热塑性树脂,如聚酰胺(尼龙)、聚碳酸酯、聚醚醚酮(PEEK)等,与碳纤维、玻璃纤维等增强材料结合,可以制备出具有高强度、高刚度和良好耐热性的复合材料。热粘弹性理论是研究材料在温度变化和时间依赖性载荷作用下的变形和应力响应。复合材料,由于其独特的微观结构,展现出复杂的热粘弹性行为。

808

《UDS协议从入门到精通》系列——图解0x10:诊断会话控制

什么是诊断会话控制服务?切换模式时ECU要做哪些?有没有通信示例?本文全网最详解!!

车载系统攻城狮 1万+

MySQL卡顿问题查找和解决方法

一、所遇问题 写在前边的废话:今天面试阿里的时候问到过类似问题,以前做调优的时候都是现查现用,缺乏总结,面试时答得也不好,今天趁此机会做一个梳理,知识只有沉淀下来才是自己的东西。 问题:mysql 运行过程中超级卡顿,并出现CPU使用率居高不下的情况,如何定位问题点以及如何解决? 二、占用CPU过高,可能原因 1)一般来讲,排除高并发的因素,还是要找到导致你CPU过高的哪几条在执行的SQL,show processlist语句,查找负荷最重的SQL语句,优化该SQL,比如适当建立某字段的索引; 2)打开慢

IChen.的博客 4296

2026年数学建模国赛C题利器:层次分析法与主成分分析在统计建模中的应用

本文系统探讨了层次分析法(AHP)与主成分分析(PCA)在数学建模竞赛,特别是全国大学生数学建模竞赛C题中的联合应用策略。通过理论阐述、方法对比和案例实践,本文揭示了两种方法从“数据降维”到“决策评价”的完整分析链条,提出了“PCA+AHP”协同框架,并通过实际算例验证了该框架在解决复杂评价类问题中的有效性和优越性。研究表明,将PCA的客观降维能力与AHP的主观决策优势有机结合,能够显著提升统计建模的科学性、合理性和解释力,是应对日益复杂的竞赛题目的重要方法论工具。关键词:层次分析法;主成分分析;数学建模。

YOLO 41

MySQL 事件调度器(Event Scheduler)的使用

假设我们有一个需求,`每隔5s`,清除表`login_log`中`2年前`的记录,并插入一条当前清理的记录,那么这个该如何实现呢? 实现这个需求的方式有很多种,此处我们通过数据库的 `Event Scheduler `来实现下。

huan的学习记录 1949

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

NTscan扫描工具

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

mysql 事件调度器_MySQL事件调度器Event Scheduler

事件调度器是定时触发运行的。在这个角度上也能够称作是"暂时的触发器"。触发器仅仅是针对某个表产生的事件运行一些语句。而事件调度器则是在某一个(间 隔)时间运行一些语句。事件是由一个特定的线程来管理的,也就是所谓的"事件调度器"。启用事件调度器后。拥有SUPER 权限的账户运行 SHOW PROCESSLIST 就能够看到这个线程了。一、事件调度器event_scheduler的开启:mysqlse...

weixin_36261487的博客 3296

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

mysql 事件 day hour_Mysql事件调度器(Event Scheduler)

Mysql中的事件调度器Event Scheduler类似于linux下的crontab计划任务的功能,它是由一个特殊的时间调度线程执行的一、查看当前是否开启了event scheduler三种方法:1) SHOW VARIABLES LIKE ‘event_scheduler’;2) SELECT @@event_scheduler;3) SHOW PROCESSLIST;(是否有State为:...

weixin_32336149的博客 912

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Mysql事件调度器(Event Scheduler)

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34406061的博客 524

mysql 计划任务关闭_MySQL计划任务(事件调度器)(Event Scheduler)

MySQL5.1.x版本中引入了一项新特性EVENT,顾名思义就是事件、定时任务机制,在指定的时间单元内执行特定的任务,因此今后一些对数据定时性操作不再依赖外部程序,而直接使用数据库本身提供的功能。要查看当前是否已开启事件调度器,可执行如下SQL:SHOW VARIABLES LIKE 'event_scheduler';或SELECT @@event_scheduler;或SHOW PROCES...

weixin_30580403的博客 396

mysql事件调度定时任务_详解MySQL用事件调度器Event Scheduler创建定时任务

前言事件调度器相当于操作系统中的定时任务(如:Linux中的cron、Window中的计划任务),但MySql的事件调度器可以精确到秒,对于一些实时性要求较高的数据处理非常有用。1. 创建/修改事件(EVENT)在MySql中,创建一个新的调度器使用CREATE EVENT,其语法规则如下:?CREATE[DEFINER = {user |CURRENT_USER }]EVENT[IFNOT EX...

weixin_28683065的博客 363

mysql开启事件调度器(Event Scheduler)

mysql开启事件(启用event_scheduler),定时完成指定sql语句。

寻码启示 2775

Mysql Linux安装和事件调度器(Event Scheduler)

MySQL安装 一、下载MySQL安装文件  完全安装MySQL需要下面6个文件:  MySQL-server-community-5.1.26-0.rhel4.i386.rpm  MySQL-client-community-5.1.26-0.rhel4.i386.rpm  MySQL-shared-community-5.1.26-0.rhel4.i386.rpm  M

zzhongcy的专栏 5514

Mysql在5.1+事件调度器(Event Scheduler)

1.在系统管理或者数据库管理中,经常要周期性的执行某一个命令或者SQL语句。 对于linux系统熟悉的人都知道linux的cron计划任务,能很方便地实现定期运行指定命令的功能。 Mysql在5.1以后推出了事件调度器(Event Scheduler) 2.准备 首先要保证你的mysql的版本是5.1以上 event_scheduler为on或者PROCESSLIST中显

sixteen_cicle的博客 475

MySQL事件调度器Event Scheduler

数据库中经常有需要定时执行一些相关的任务的需求,在MSSQL中SQL Agnet,在Mysql5.1以前,一般需要通过OS的调度计划(windows的计划任务和linux的crontab)来实现,Mysql5.1以后增加了一个事件调度器,可以实现定时调度的功能。

seteor的专栏 3836

Mysql创建定时任务主从模式_详解MySQL用事件调度器Event Scheduler创建定时任务

前言事件调度器相当于操作系统中的定时任务(如:Linux中的cron、Window中的计划任务),但MySql的事件调度器可以精确到秒,对于一些实时性要求较高的数据处理非常有用。1. 创建/修改事件(EVENT)在MySql中,创建一个新的调度器使用CREATE EVENT,其语法规则如下:CREATE[DEFINER = { user | CURRENT_USER }]EVENT[IF NOT ...

weixin_30705133的博客 335

记录-MySQL中的事件调度Event Scheduler

下面是自己的实例 /*查询event是否开启(查询结果Off为关闭 On为开启)*/show variables like '%sche%'; /*开启/关闭命令(1开启--0关闭)*/set global event_scheduler=1; /*关闭事件任务: */alter event e_test_insert ON COMPLETION PRESERVE DISABLE;...

weixin_30652491的博客 126

MySQL计划任务(事件调度器)(Event Scheduler)

MySQL计划任务(事件调度器)(Event Scheduler) MySQL5.1.x版本中引入了一项新特性EVENT,顾名思义就是事件、定时任务机制,在指定的时间单元内执行特定的任务,因此今后一些对数据定时性操作不再依赖外部程序,而直接使用数据库本身提供的功能。 要查看当前是否已开启事件调度器,可执行如下SQL: SHOW VARIABLES LIKE 'event_sche

zcf396720的专栏 214
上一篇: nodejs系列之七——nodejs与mongoDB
下一篇: [转载]我一定是疯了
llmlx
博客等级 码龄23年 15粉丝 105原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值