mirror of
https://github.com/TeaOSLab/EdgeAPI.git
synced 2025-11-06 18:10:25 +08:00
DNS解析发生变化时立即触发同步任务
This commit is contained in:
@@ -19,6 +19,8 @@ const (
|
||||
DNSTaskTypeDomainChange DNSTaskType = "domainChange"
|
||||
)
|
||||
|
||||
var DNSTasksNotifier = make(chan bool, 2)
|
||||
|
||||
type DNSTaskDAO dbs.DAO
|
||||
|
||||
func NewDNSTaskDAO() *DNSTaskDAO {
|
||||
@@ -64,7 +66,17 @@ func (this *DNSTaskDAO) CreateDNSTask(tx *dbs.Tx, clusterId int64, serverId int6
|
||||
"error": "",
|
||||
"version": time.Now().UnixNano(),
|
||||
})
|
||||
return err
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// 通知更新
|
||||
select {
|
||||
case DNSTasksNotifier <- true:
|
||||
default:
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// CreateClusterTask 生成集群变更任务
|
||||
|
||||
@@ -39,7 +39,13 @@ func NewDNSTaskExecutor(duration time.Duration) *DNSTaskExecutor {
|
||||
}
|
||||
|
||||
func (this *DNSTaskExecutor) Start() {
|
||||
for range this.ticker.C {
|
||||
for {
|
||||
select {
|
||||
case <-this.ticker.C:
|
||||
case <-dnsmodels.DNSTasksNotifier:
|
||||
time.Sleep(3 * time.Second) // 人为延长N秒,等待可能的几个任务合并
|
||||
}
|
||||
|
||||
err := this.Loop()
|
||||
if err != nil {
|
||||
this.logErr("DNSTaskExecutor", err.Error())
|
||||
|
||||
Reference in New Issue
Block a user