[TOC]
# 说明
各个插件的定时器可以相对独立也可以形成队列
# 添加计时器
通常情况下我们会在插件的Runner.OnStart里增加定时任务
```
public void OnStart()
{
Builder.AutoMaper();
IPlugin.AddOnTimerQueue(OnTimer, 3000);
// 2022-5-14 新增
var targetTime = DateTime.Parse(DateTime.Now.AddDays(1).ToString("yyyy-MM-dd")) - DateTime.Now;
IPlugin.AddOnTimerQueue(OnTimer, TimeSpan.FromDays(1), targetTime);
Console.WriteLine("插件被启动!");
}
public void OnTimer()
{
Console.WriteLine("This is Plugin Demo OnTimer ");
}
```
AddOnTimerQueue 的构成如下
```
///queueName 队列名称
///onTimerDelegate 代理函数
///interval 循环间隔毫秒数
void AddOnTimerQueue(
PluginOnTimerDelegate onTimerDelegate,
int interval = 1000);
```
```
///delayms 延迟TimeSpan
void AddOnTimerQueue(
PluginOnTimerDelegate onTimerDelegate,
TimeSpan interval,
TimeSpan delayms)
```
# 删除计时器
```
//从default队列中删除OnTimer代理
IPlugin.RemoveOnTimerQueue(OnTimer);
```
# 独立计时器
一个类只能创建一个定时任务,如果重复创建会被覆盖
插件重启会自动清理计时器