mirror of
https://github.com/TeaOSLab/EdgeAPI.git
synced 2025-11-03 23:20:26 +08:00
手动同步集群任务后把所有相关任务标记为已完成
This commit is contained in:
@@ -201,6 +201,27 @@ func (this *DNSTaskDAO) UpdateDNSTaskDone(tx *dbs.Tx, taskId int64, taskVersion
|
|||||||
return this.Save(tx, op)
|
return this.Save(tx, op)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GenerateVersion 生成最新的版本号
|
||||||
|
func (this *DNSTaskDAO) GenerateVersion() int64 {
|
||||||
|
return time.Now().UnixNano()
|
||||||
|
}
|
||||||
|
|
||||||
|
// UpdateClusterDNSTasksDone 设置所有集群任务完成
|
||||||
|
func (this *DNSTaskDAO) UpdateClusterDNSTasksDone(tx *dbs.Tx, clusterId int64, maxVersion int64) error {
|
||||||
|
if clusterId <= 0 || maxVersion <= 0 {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
return this.Query(tx).
|
||||||
|
Attr("clusterId", clusterId).
|
||||||
|
Attr("isOk", false).
|
||||||
|
Lte("version", maxVersion).
|
||||||
|
Set("isDone", true).
|
||||||
|
Set("isOk", true).
|
||||||
|
Set("error", "").
|
||||||
|
UpdateQuickly()
|
||||||
|
}
|
||||||
|
|
||||||
// DeleteDNSTasksWithClusterId 删除集群相关任务
|
// DeleteDNSTasksWithClusterId 删除集群相关任务
|
||||||
func (this *DNSTaskDAO) DeleteDNSTasksWithClusterId(tx *dbs.Tx, clusterId int64) error {
|
func (this *DNSTaskDAO) DeleteDNSTasksWithClusterId(tx *dbs.Tx, clusterId int64) error {
|
||||||
if clusterId <= 0 {
|
if clusterId <= 0 {
|
||||||
|
|||||||
@@ -1,17 +1,28 @@
|
|||||||
package dns
|
package dns_test
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"github.com/TeaOSLab/EdgeAPI/internal/db/models/dns"
|
||||||
_ "github.com/go-sql-driver/mysql"
|
_ "github.com/go-sql-driver/mysql"
|
||||||
_ "github.com/iwind/TeaGo/bootstrap"
|
_ "github.com/iwind/TeaGo/bootstrap"
|
||||||
"github.com/iwind/TeaGo/dbs"
|
"github.com/iwind/TeaGo/dbs"
|
||||||
"testing"
|
"testing"
|
||||||
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestDNSTaskDAO_CreateDNSTask(t *testing.T) {
|
func TestDNSTaskDAO_CreateDNSTask(t *testing.T) {
|
||||||
dbs.NotifyReady()
|
dbs.NotifyReady()
|
||||||
err := SharedDNSTaskDAO.CreateDNSTask(nil, 1, 2, 3, 0, "cdn", "taskType")
|
err := dns.SharedDNSTaskDAO.CreateDNSTask(nil, 1, 2, 3, 0, "cdn", "taskType")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
t.Log("ok")
|
t.Log("ok")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestDNSTaskDAO_UpdateClusterDNSTasksDone(t *testing.T) {
|
||||||
|
var dao = dns.NewDNSTaskDAO()
|
||||||
|
var tx *dbs.Tx
|
||||||
|
err := dao.UpdateClusterDNSTasksDone(tx, 46, time.Now().UnixNano())
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -303,7 +303,24 @@ func (this *DNSDomainService) SyncDNSDomainData(ctx context.Context, req *pb.Syn
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
return this.syncClusterDNS(req)
|
|
||||||
|
var latestVersion = dns.SharedDNSTaskDAO.GenerateVersion()
|
||||||
|
|
||||||
|
resp, err := this.syncClusterDNS(req)
|
||||||
|
if err != nil {
|
||||||
|
return resp, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// 标记集群所有任务已完成
|
||||||
|
if req.NodeClusterId > 0 && resp != nil && resp.IsOk {
|
||||||
|
var tx = this.NullTx()
|
||||||
|
err = dns.SharedDNSTaskDAO.UpdateClusterDNSTasksDone(tx, req.NodeClusterId, latestVersion)
|
||||||
|
if err != nil {
|
||||||
|
return resp, err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return resp, err
|
||||||
}
|
}
|
||||||
|
|
||||||
// FindAllDNSDomainRoutes 查看支持的线路
|
// FindAllDNSDomainRoutes 查看支持的线路
|
||||||
|
|||||||
Reference in New Issue
Block a user