Skip to content

Commit 88cd755

Browse files
authored
fix(host): update host-base to v0.7.0 (#22085)
* fix(host): update host-base to v0.7.0 * fix(cronjob): init timezone, timer set location
1 parent 73945d3 commit 88cd755

File tree

20 files changed

+31
-24
lines changed

20 files changed

+31
-24
lines changed

build/docker/Dockerfile.host

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM registry.cn-beijing.aliyuncs.com/yunionio/host-base:v0.6.0
1+
FROM registry.cn-beijing.aliyuncs.com/yunionio/host-base:v0.7.0
22

33
MAINTAINER "Yaoqi Wan [email protected]"
44

build/docker/multi-arch/Dockerfile.host

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@ COPY . /root/go/src/yunion.io/x/onecloud
77
WORKDIR /root/go/src/yunion.io/x/onecloud
88
RUN make cmd/host
99

10-
FROM registry.cn-beijing.aliyuncs.com/yunionio/host-base:v0.6.0
10+
FROM registry.cn-beijing.aliyuncs.com/yunionio/host-base:v0.7.0
1111

1212
MAINTAINER "Yaoqi Wan [email protected]"
1313

14-
ENV TZ Asia/Shanghai
14+
ENV TZ UTC
1515

1616
RUN mkdir -p /opt/yunion/bin
1717
COPY --from=build /root/go/src/yunion.io/x/onecloud/_output/bin/host /opt/yunion/bin/host

pkg/apigateway/service/service.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ func StartService() {
5858
// log.Infof("Modules: %s", jsonutils.Marshal(jmods).PrettyString())
5959

6060
if !options.Options.DisableReporting {
61-
cron := cronman.InitCronJobManager(true, 1)
61+
cron := cronman.InitCronJobManager(true, 1, opts.TimeZone)
6262
rand.Seed(time.Now().Unix())
6363
cron.AddJobEveryFewDays("AutoReport", 1, rand.Intn(23), rand.Intn(59), 0, report.Report, true)
6464
go cron.Start()

pkg/baremetal/service/service.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ func (s *BaremetalService) StartService() {
7878

7979
s.startAgent(app)
8080

81-
cron := cronman.InitCronJobManager(false, o.Options.CronJobWorkerCount)
81+
cron := cronman.InitCronJobManager(false, o.Options.CronJobWorkerCount, o.Options.TimeZone)
8282
cron.AddJobAtIntervals("BaremetalCronJobs", 10*time.Second, baremetal.DoCronJobs)
8383
cron.Start()
8484
defer cron.Stop()

pkg/cloudcommon/cronman/cronman.go

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -140,15 +140,22 @@ type SCronJobManager struct {
140140
running bool
141141
workers *appsrv.SWorkerManager
142142
dataLock *sync.Mutex
143+
timezone *time.Location
143144
}
144145

145-
func InitCronJobManager(isDbWorker bool, workerCount int) *SCronJobManager {
146+
func InitCronJobManager(isDbWorker bool, workerCount int, timezone string) *SCronJobManager {
146147
if manager == nil {
148+
tz, err := time.LoadLocation(timezone)
149+
if err != nil {
150+
log.Errorf("InitCronJobManager failed")
151+
tz = time.UTC
152+
}
147153
manager = &SCronJobManager{
148154
jobs: make([]*SCronJob, 0),
149155
workers: appsrv.NewWorkerManager("CronJobWorkers", workerCount, 1024, isDbWorker),
150156
dataLock: new(sync.Mutex),
151157
add: make(chan struct{}),
158+
timezone: tz,
152159
}
153160
}
154161
return manager
@@ -311,7 +318,7 @@ func (self *SCronJobManager) AddJobEveryFewHour(name string, hour, min, sec int,
311318
}
312319

313320
func (self *SCronJobManager) addJob(newJob *SCronJob) {
314-
now := time.Now()
321+
now := time.Now().In(self.timezone)
315322
newJob.Next = newJob.Timer.Next(now)
316323
if newJob.StartRun {
317324
newJob.runJob(true, now)
@@ -375,7 +382,7 @@ func (self *SCronJobManager) Stop() {
375382
}
376383

377384
func (self *SCronJobManager) init() {
378-
now := time.Now()
385+
now := time.Now().In(self.timezone)
379386
self.next(now)
380387
heap.Init(&self.jobs)
381388
for i := 0; i < len(self.jobs); i += 1 {
@@ -388,7 +395,7 @@ func (self *SCronJobManager) init() {
388395

389396
func (self *SCronJobManager) run(ctx context.Context) {
390397
var timer *time.Timer
391-
var now = time.Now()
398+
var now = time.Now().In(self.timezone)
392399
for {
393400
self.dataLock.Lock()
394401
if len(self.jobs) == 0 || self.jobs[0].Next.IsZero() {

pkg/cloudcommon/cronman/cronman_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import (
2323
)
2424

2525
func TestSCronJobManager_AddRemoveJobs(t *testing.T) {
26-
manager := InitCronJobManager(false, 4)
26+
manager := InitCronJobManager(false, 4, "")
2727
testFunc := func(ctx context.Context, userCred mcclient.TokenCredential, isStart bool) {}
2828
manager.AddJobAtIntervals("Test1", time.Second*100, testFunc)
2929

pkg/cloudevent/service/service.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ func StartService() {
6161
log.Fatalf("TaskManager.InitializeData fail %s", err)
6262
}
6363

64-
cron := cronman.InitCronJobManager(true, options.Options.CronJobWorkerCount)
64+
cron := cronman.InitCronJobManager(true, options.Options.CronJobWorkerCount, options.Options.TimeZone)
6565
cron.AddJobAtIntervalsWithStartRun("SyncCloudprovider", time.Duration(opts.CloudproviderSyncIntervalMinutes)*time.Minute, models.CloudproviderManager.SyncCloudproviders, true)
6666
cron.AddJobAtIntervalsWithStartRun("CloudeventSyncTask", time.Duration(opts.CloudeventSyncIntervalHours)*time.Hour, models.CloudproviderManager.SyncCloudeventTask, true)
6767

pkg/cloudid/service/service.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ func StartService() {
9191
log.Fatalf("TaskManager.InitializeData fail %s", err)
9292
}
9393

94-
cron := cronman.InitCronJobManager(true, options.Options.CronJobWorkerCount)
94+
cron := cronman.InitCronJobManager(true, options.Options.CronJobWorkerCount, options.Options.TimeZone)
9595
cron.AddJobAtIntervalsWithStartRun("SyncCloudaccountResources", time.Duration(opts.CloudIdResourceSyncIntervalHours)*time.Hour, models.CloudaccountManager.SyncCloudaccountResources, true)
9696
cron.AddJobAtIntervalsWithStartRun("SyncCloudproviderResources", time.Duration(opts.CloudIdResourceSyncIntervalHours)*time.Hour, models.CloudproviderManager.SyncCloudproviderResources, true)
9797

pkg/cloudmon/service/service.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ func StartService() {
4848

4949
res := resources.NewResources()
5050
if !opts.IsSlaveNode {
51-
cron := cronman.InitCronJobManager(true, options.Options.CronJobWorkerCount)
51+
cron := cronman.InitCronJobManager(true, options.Options.CronJobWorkerCount, options.Options.TimeZone)
5252
cron.AddJobAtIntervalsWithStartRun("InitResources", time.Duration(opts.ResourcesSyncInterval)*time.Minute, res.Init, true)
5353
cron.AddJobAtIntervals("IncrementResources", time.Duration(opts.ResourcesSyncInterval)*time.Minute, res.IncrementSync)
5454
cron.AddJobAtIntervals("DecrementResources", time.Duration(opts.ResourcesSyncInterval)*time.Minute, res.DecrementSync)

pkg/compute/service/service.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ func StartServiceWithJobsAndApp(jobs func(cron *cronman.SCronJobManager), appCll
163163

164164
cachesync.StartTenantCacheSync(opts.TenantCacheExpireSeconds)
165165

166-
cron := cronman.InitCronJobManager(true, options.Options.CronJobWorkerCount)
166+
cron := cronman.InitCronJobManager(true, options.Options.CronJobWorkerCount, options.Options.TimeZone)
167167
cron.AddJobAtIntervals("CleanPendingDeleteServers", time.Duration(opts.PendingDeleteCheckSeconds)*time.Second, models.GuestManager.CleanPendingDeleteServers)
168168
cron.AddJobAtIntervals("CleanPendingDeleteDisks", time.Duration(opts.PendingDeleteCheckSeconds)*time.Second, models.DiskManager.CleanPendingDeleteDisks)
169169
if opts.PrepaidExpireCheck {

0 commit comments

Comments
 (0)