@@ -168,6 +168,8 @@ var (
168
168
hclspec .NewLiteral (`true` )),
169
169
"ForeignKeyChecks" : hclspec .NewDefault (hclspec .NewAttr ("ForeignKeyChecks" , "bool" , false ),
170
170
hclspec .NewLiteral (`true` )),
171
+ "DumpEntryLimit" : hclspec .NewDefault (hclspec .NewAttr ("DumpEntryLimit" , "number" , false ),
172
+ hclspec .NewLiteral (`67108864` )),
171
173
"OracleConfig" : hclspec .NewBlock ("OracleConfig" , false , hclspec .NewObject (map [string ]* hclspec.Spec {
172
174
"ServiceName" : hclspec .NewAttr ("ServiceName" , "string" , true ),
173
175
"Host" : hclspec .NewAttr ("Host" , "string" , true ),
@@ -390,30 +392,16 @@ func (d *Driver) SetConfig(c *base.Config) (err error) {
390
392
}
391
393
392
394
func (d * Driver ) loopCleanRelayDir () {
393
- stopCh := make (chan struct {})
394
- defer close (stopCh )
395
-
396
395
cleanDataDir := func () {
397
396
files , err := ioutil .ReadDir (path .Join (d .config .DataDir , "binlog" ))
398
397
if err != nil {
399
- d .logger .Info ("read dir failed" , "dataDir" , d .config .DataDir , "err" , err )
400
- return
401
- }
402
-
403
- jobs , err := d .storeManager .FindJobList ()
404
- if err != nil {
405
- d .logger .Error ("list jobs failed" , "err" , err )
398
+ d .logger .Error ("read dir failed" , "dataDir" , d .config .DataDir , "err" , err )
406
399
return
407
400
}
408
401
409
402
for _ , file := range files {
410
- existUnuseDir := true
411
- for i := range jobs {
412
- if jobs [i ].JobId == file .Name () {
413
- existUnuseDir = false
414
- }
415
- }
416
- if ! existUnuseDir {
403
+ _ , exist , err := d .storeManager .GetNatsIfExist (file .Name ())
404
+ if exist || err != nil {
417
405
continue
418
406
}
419
407
if err := os .RemoveAll (path .Join (d .config .DataDir , "binlog" , file .Name ())); err != nil {
@@ -422,21 +410,13 @@ func (d *Driver) loopCleanRelayDir() {
422
410
}
423
411
}
424
412
425
- jobKeysCh , err := d .storeManager .WatchTree ("/dtleJobList/" , stopCh )
426
- if err != nil {
427
- d .logger .Error ("watch job tree error" , "err" , err )
428
- }
429
413
cleanDuration := 12 * time .Hour
430
414
cleanDelay := time .NewTimer (cleanDuration )
431
415
defer cleanDelay .Stop ()
432
416
for {
433
- select {
434
- case <- jobKeysCh :
435
- cleanDataDir ()
436
- case <- cleanDelay .C :
437
- cleanDataDir ()
438
- }
439
417
cleanDelay .Reset (cleanDuration )
418
+ <- cleanDelay .C
419
+ cleanDataDir ()
440
420
}
441
421
}
442
422
@@ -560,7 +540,7 @@ func (d *Driver) StartTask(cfg *drivers.TaskConfig) (*drivers.TaskHandle, *drive
560
540
return nil , nil , errors .Wrap (err , "SetDriverState" )
561
541
}
562
542
563
- h := newDtleTaskHandle (d .logger , cfg , drivers .TaskStateRunning , time .Now ().Round (time .Millisecond ))
543
+ h := newDtleTaskHandle (d .ctx , d . logger , cfg , drivers .TaskStateRunning , time .Now ().Round (time .Millisecond ))
564
544
h .driverConfig = & common.MySQLDriverConfig {DtleTaskConfig : dtleTaskConfig }
565
545
d .tasks .Set (cfg .ID , h )
566
546
AllocIdTaskNameToTaskHandler .Set (cfg .AllocID , cfg .Name , cfg .ID , h )
@@ -655,8 +635,8 @@ func (d *Driver) handleWait(ctx context.Context, handle *taskHandle, ch chan *dr
655
635
return
656
636
case <- d .ctx .Done ():
657
637
return
658
- case <- handle .doneCh :
659
- ch <- handle .exitResult . Copy ()
638
+ case <- handle .ctx . Done () :
639
+ ch <- handle .GetExitResult ()
660
640
}
661
641
}
662
642
0 commit comments