设置全局对象
var
kbmMWScheduler : TkbmMWScheduledEvents;
procedure TForm_main.Button16Click(Sender: TObject);
var
DeleteWuXiaoToken : IkbmMWScheduledEvent ;
begin
DeleteWuXiaoToken := kbmMWScheduler.GetByName('DeleteWuXiaoToken');
DeleteWuXiaoToken.Active := False;
end;
//// 以上代码执行报错
---- 方法一
use kbmMWScheduler ,Uni,kbmMWUniDAC
private
{ Private declarations }
myeventDeleteWuXiaoToken : IkbmMWScheduledEvent;
public
{ Public declarations }
function OnScheduledEventDeleteWuXiaoToken(const AScheduledEvent: IkbmMWScheduledEvent): boolean;
end;
function TForm_main.OnScheduledEventDeleteWuXiaoToken(
const AScheduledEvent: IkbmMWScheduledEvent): boolean;
var
tempstr: string;
UniQuery1: TUniQuery;
aconn_uni: TkbmMWUNIDACConnection;
count : String;
begin
try
try
tempstr := DM.lockDbConnetionAndUniQuery(aconn_uni, UniQuery1,DM.kbmMWUNIDACConnectionPool1); // 从数据库连接池中取出可用链接和uni数据集
if tempstr <> '' then // 如果出现错误,返回错误字符串并退出函数
begin
exit;
end;
// aconn_uni.StartTransaction; // 开始事务
UniQuery1.Close;
UniQuery1.sql.Clear;
UniQuery1.sql.Add('DELETE FROM UserToken where CreatedTime<dateadd(minute,-30,GETDATE())');
UniQuery1.Prepare;
UniQuery1.ExecSQL;
count := UniQuery1.RowsAffected.ToString;
LogWriter.Write(ltWarning,'删除无效token-->'+ count);
// aconn_uni.CommitTransaction; // 结束事务
except
on e: Exception do
begin
LogWriter.Write(ltError,e.Message);
// aconn_uni.RollbackTransaction; // 回滚事务
end;
end;
finally
DM.unlockDbConnetionAndUniQuery(aconn_uni, UniQuery1); // 释放aconn_uni和uniQuery1
end;
end;
procedure TForm_main.Button15Click(Sender: TObject);//启动定时删除无效token
begin
//松散调度Relaxed ,每200毫秒执行一次 , 松散调度stop 后,重启无效
{建立精确事件调度在kbmmw 里面也很简单,代码如下,
kbmMWScheduler.Schedule(OnScheduledEvent).NamedAs(‘xalion’).EverySecond(10).Precise.Activate(true);}
myeventDeleteWuXiaoToken :=
Scheduler.Schedule(OnScheduledEventDeleteWuXiaoToken).EverySecond(3).Precise.Activate(true);
if not myeventDeleteWuXiaoToken.Scheduler.Active
then myeventDeleteWuXiaoToken.Scheduler.Events.Start ;
end;
procedure TForm_main.Button16Click(Sender: TObject);
begin
myeventDeleteWuXiaoToken.Active := false;
//myeventDeleteWuXiaoToken.Scheduler.Events.Stop ; //不是单事件 是全部事件 全部停止
end;
方法二 通过命名方法:
use kbmMWScheduler ;
procedure TForm_main.Button15Click(Sender: TObject);//启动定时删除无效token
begin
Scheduler.Schedule(OnScheduledEventDeleteWuXiaoToken).NamedAs('DeleteWuXiaoToken').EverySecond(3).Precise.Activate(true);
//也可以这样用 松散调度Relaxed ,精确调度Precise
{ Scheduler.Schedule(DataModule3.OnScheduledEvent).NamedAs('pushmessage').EverySecond(3).Precise.Active := True;}
end;
procedure TForm_main.Button16Click(Sender: TObject);
begin
Scheduler.Events.GetByName('DeleteWuXiaoToken').Active := False;
end;
=======================================================================
先要命名,按名字重启
---- 修改界面
意识是这里如果要修改界面 需要这样调用? 对