最常用的做法是使用UNIX的cron直接執(zhí)行Java程序。
成都創(chuàng)新互聯(lián)是專業(yè)的項城網(wǎng)站建設(shè)公司,項城接單;提供成都網(wǎng)站設(shè)計、網(wǎng)站制作,網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進行項城網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!
并不需要在Java做的那么復雜。
Windows服務(wù)器也有類似于cron的任務(wù)管理功能,同理
---------------------------
Tomcat不是用來管理定時任務(wù)的,如果沒有HTTP請求,Servlet是不會被執(zhí)行的。
建議lz把定期執(zhí)行的處理做成一個獨立的Java程序,用cron執(zhí)行。
如果不想寫?yīng)毩⒌腏ava程序,也可以用cron定期向Tomcat發(fā)送Http請求,但是,這樣做的話注意程序處理時間不能太長,因為HTTP通信有timeout的制約。
mysql如何查看定時器有沒有執(zhí)行
1.查看是否開啟evevt與開啟evevt。
1.1、MySQL evevt功能默認是關(guān)閉的,可以使用下面的語句來看evevt的狀態(tài),如果是OFF或者0,表示是關(guān)閉的。
show VARIABLES LIKE '%sche%';
1.2、開啟evevt功能
SET GLOBAL event_scheduler = 1;
2.創(chuàng)建定時器的過程
2.1、創(chuàng)建測試表test
drop table if exists test;
create table test
(
id int(11) not null auto_increment primary key,
time datetime not null
) engine=innodb default charset=utf8;
2.2、創(chuàng)建evevt要調(diào)用的存儲過程test_proce
delimiter //
drop procedure if exists test_proce//
create procedure test_proce()
begin
insert into test(time) values(now());
end//
delimiter ;
2.3、開啟evevt(要使定時起作用,MySQL的常量GLOBAL event_scheduler必須為on或者是1)
執(zhí)行show variables like 'event_scheduler';查看evevt是否開啟;
若沒開啟執(zhí)行set global event_scheduler='on';
2.4、創(chuàng)建事件test_event(其作用:每隔一秒自動調(diào)用test_proce()存儲過程)
drop event if exists test_event;
create event test_event
on schedule every 1 second
on completion preserve disable
do call test_proce();
2.5、開啟事件test_event
mysql實現(xiàn)定時任務(wù)是有一個時間調(diào)度器,所以首先要查看這個時間調(diào)度器是否開啟。
查看的命令:
show variables like 'event_scheduler'
如果沒有打開,則設(shè)置打開。設(shè)置的命令是:
set global event_scheduler = ON; 或set global event_scheduler = 1;
確定打開事件調(diào)度器后,我們可以創(chuàng)建一個定時任務(wù)。
創(chuàng)建定時任務(wù)的語法為:
create event 定時任務(wù)名稱
ON schedule 定時時間
do
定時任務(wù)所要執(zhí)行的sql;
example:每隔一分鐘往表tt里插入一條數(shù)據(jù)
create event insert_tt
ON schedule every 1 MINUTE
do
insert into tt values(1);
如果要執(zhí)行多條sql則可用多個do
create event insert_tt
ON schedule every 1 MINUTE
do
insert into tt values(1);
do
.......
使用命令查看所有的定時任務(wù)及其狀態(tài):
show processlist
如果要停掉某個定時任務(wù)可以使用:
alter event 定時任務(wù)名 ON
COMPLETION PRESERVE DISABLE;
example:
alter event insert_tt ON
COMPLETION PRESERVE DISABLE;
開啟某個定時任務(wù):
alter event 定時任務(wù)名稱 ON
COMPLETION PRESERVE ENABLE;
網(wǎng)站名稱:mysql定時器怎么做 mysql創(chuàng)建定時器
網(wǎng)站URL:http://jinyejixie.com/article12/doohsgc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、品牌網(wǎng)站設(shè)計、用戶體驗、網(wǎng)頁設(shè)計公司、網(wǎng)站設(shè)計、電子商務(wù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)