mirror of
https://github.com/TeaOSLab/EdgeAPI.git
synced 2025-11-07 02:20:24 +08:00
DNS解析发生变化时立即触发同步任务
This commit is contained in:
@@ -19,6 +19,8 @@ const (
|
|||||||
DNSTaskTypeDomainChange DNSTaskType = "domainChange"
|
DNSTaskTypeDomainChange DNSTaskType = "domainChange"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
var DNSTasksNotifier = make(chan bool, 2)
|
||||||
|
|
||||||
type DNSTaskDAO dbs.DAO
|
type DNSTaskDAO dbs.DAO
|
||||||
|
|
||||||
func NewDNSTaskDAO() *DNSTaskDAO {
|
func NewDNSTaskDAO() *DNSTaskDAO {
|
||||||
@@ -64,7 +66,17 @@ func (this *DNSTaskDAO) CreateDNSTask(tx *dbs.Tx, clusterId int64, serverId int6
|
|||||||
"error": "",
|
"error": "",
|
||||||
"version": time.Now().UnixNano(),
|
"version": time.Now().UnixNano(),
|
||||||
})
|
})
|
||||||
return err
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// 通知更新
|
||||||
|
select {
|
||||||
|
case DNSTasksNotifier <- true:
|
||||||
|
default:
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// CreateClusterTask 生成集群变更任务
|
// CreateClusterTask 生成集群变更任务
|
||||||
|
|||||||
@@ -39,7 +39,13 @@ func NewDNSTaskExecutor(duration time.Duration) *DNSTaskExecutor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (this *DNSTaskExecutor) Start() {
|
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()
|
err := this.Loop()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
this.logErr("DNSTaskExecutor", err.Error())
|
this.logErr("DNSTaskExecutor", err.Error())
|
||||||
|
|||||||
Reference in New Issue
Block a user