我想知道它是否可能在MySQL上进行同一事件重叠其执行:
eg:我有计划每2秒执行一次:
BEGIN
DELETE FROM RouteDatabase3.route_fast WHERE TIMESTAMPDIFF(minute, updated_at, now()) > 5;
END
如果此事件需要10秒,会发生什么?MySQL Server将执行相同的事件与最后一个事件重叠?
可以锁定事件执行,因此MySQL只能在时间执行一个?
我能够使用mySQL的get_lock and repartion_lock函数找到解决方案,
BEGIN
IF GET_LOCK('lock', 5) THEN
DELETE FROM RouteDatabase3.route_fast WHERE TIMESTAMPDIFF(minute, updated_at, now()) > 5;
SELECT RELEASE_LOCK('lock');
END IF;
END