diff --git a/business/jxutils/jxutils_sync_map.go b/business/jxutils/jxutils_sync_map.go index 92827aea6..99c2beeab 100644 --- a/business/jxutils/jxutils_sync_map.go +++ b/business/jxutils/jxutils_sync_map.go @@ -24,6 +24,6 @@ func (m *SyncMapWithTimeout) Delete(key interface{}) { if value, ok := m.timers.Load(key); ok { timer := value.(*time.Timer) timer.Stop() + m.timers.Delete(key) } - m.timers.Delete(key) } diff --git a/business/jxutils/tasksch/parallel_task.go b/business/jxutils/tasksch/parallel_task.go index de62f3cf8..d402e8a2c 100644 --- a/business/jxutils/tasksch/parallel_task.go +++ b/business/jxutils/tasksch/parallel_task.go @@ -179,6 +179,7 @@ func (task *ParallelTask) Run() { close(task.subFinishChan) task.jobList = nil // 如果不释放,任务被管理的话,会导致内存不能释放 + task.worker = nil }) } diff --git a/business/jxutils/tasksch/sequence_task.go b/business/jxutils/tasksch/sequence_task.go index c443c85e6..7bcd3faac 100644 --- a/business/jxutils/tasksch/sequence_task.go +++ b/business/jxutils/tasksch/sequence_task.go @@ -59,6 +59,8 @@ func (task *SeqTask) Run() { task.Result = taskResult task.mainErr = taskErr task.locker.Unlock() + + task.worker = nil }) }