MySQL 스케쥴러
프로젝트를 하다보면 반복적으로 무언가를 해줘야 하는 작업들이 있습니다. 거의 대부분이 DB의 값을 변경하는 일이거나 메일발송과 같이 특정 시간 간격으로 DB에서 값을 읽어와 메일을 발송하는 경우의 작업에서 말이지요.
여기서는 MySQL DB에서의 스케쥴러 사용법에 대해서 알아보겠습니다.
-- 스케쥴러 이벤트 시작 설정 스크립트
SET GLOBAL event_scheduler = on
SET @@global.event_scheduler = on
SET GLOBAL event_scheduler = 1;
SET @@global.event_scheduler = 1;
-- my.cnf or my.ini 에서 옵션(event_scheduler=On)을 추가하고 mysql 을 시작한다.
-- 테스트 테이블 생성
CREATE TABLE `testTable` (
`num` int(10) unsigned NOT NULL AUTO_INCREMENT,
`regdate` datetime NOT NULL,
PRIMARY KEY (`num`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
-- 스케쥴 이벤트 생성
create event IF NOT EXISTS eventTest
on SCHEDULE
EVERY 30 SECOND
STARTS CURRENT_TIMESTAMP
DO insert into aptlinkcrm.testTable set regdate=now();
-- 스케쥴 확인
select * from testTable
-- 이벤트 삭제
drop event eventTest;
-- 테이블 삭제
drop table testTable;
-- 스케쥴 이벤트 설정 Off
SET GLOBAL event_scheduler = OFF;
SET @@global.event_scheduler = OFF;
SET GLOBAL event_scheduler = 0;
SET @@global.event_scheduler = 0;
-- my.cnf or my.ini 에서 옵션(event_scheduler=Off)을 추가하고 mysql 을 시작한다.
-- 스케쥴러 이벤트 생성
create event IF NOT EXISTS schedule_sms_send_result
on SCHEDULE
EVERY 1 MINUTE /* 스케쥴 시작 간격 */
STARTS CURRENT_TIMESTAMP /* 스케쥴 시작 시간 (현재 부터) */
DO call set_sms_send_result(); /* 프로시져 실행 */
-- 스케쥴러 이벤트 삭제
drop event schedule_sms_send_result;
위와 같이 테스트로 스케쥴을 생성하고 이벤트를 실행해서 해보시면 감이 오실거에요.
이상으로 MySQL 스케쥴러에 대해서 알아보았습니다.
여기서는 MySQL DB에서의 스케쥴러 사용법에 대해서 알아보겠습니다.
-- 스케쥴러 이벤트 시작 설정 스크립트
SET GLOBAL event_scheduler = on
SET @@global.event_scheduler = on
SET GLOBAL event_scheduler = 1;
SET @@global.event_scheduler = 1;
-- my.cnf or my.ini 에서 옵션(event_scheduler=On)을 추가하고 mysql 을 시작한다.
-- 테스트 테이블 생성
CREATE TABLE `testTable` (
`num` int(10) unsigned NOT NULL AUTO_INCREMENT,
`regdate` datetime NOT NULL,
PRIMARY KEY (`num`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
-- 스케쥴 이벤트 생성
create event IF NOT EXISTS eventTest
on SCHEDULE
EVERY 30 SECOND
STARTS CURRENT_TIMESTAMP
DO insert into aptlinkcrm.testTable set regdate=now();
-- 스케쥴 확인
select * from testTable
-- 이벤트 삭제
drop event eventTest;
-- 테이블 삭제
drop table testTable;
-- 스케쥴 이벤트 설정 Off
SET GLOBAL event_scheduler = OFF;
SET @@global.event_scheduler = OFF;
SET GLOBAL event_scheduler = 0;
SET @@global.event_scheduler = 0;
-- my.cnf or my.ini 에서 옵션(event_scheduler=Off)을 추가하고 mysql 을 시작한다.
-- 스케쥴러 이벤트 생성
create event IF NOT EXISTS schedule_sms_send_result
on SCHEDULE
EVERY 1 MINUTE /* 스케쥴 시작 간격 */
STARTS CURRENT_TIMESTAMP /* 스케쥴 시작 시간 (현재 부터) */
DO call set_sms_send_result(); /* 프로시져 실행 */
-- 스케쥴러 이벤트 삭제
drop event schedule_sms_send_result;
위와 같이 테스트로 스케쥴을 생성하고 이벤트를 실행해서 해보시면 감이 오실거에요.
이상으로 MySQL 스케쥴러에 대해서 알아보았습니다.
댓글
댓글 쓰기