Clean mqueue every 24h of > 24h closed connections
This commit is contained in:
		| @ -125,7 +125,7 @@ var ( | |||||||
| 	File   os.File | 	File   os.File | ||||||
| 	Writer *bufio.Writer | 	Writer *bufio.Writer | ||||||
|  |  | ||||||
| 	Version = "0.6.6" | 	Version = "0.6.7" | ||||||
|  |  | ||||||
| 	BuildInfo = promauto.NewGaugeVec(prometheus.GaugeOpts{ | 	BuildInfo = promauto.NewGaugeVec(prometheus.GaugeOpts{ | ||||||
| 		Name: "openldaplogparser_build_info", | 		Name: "openldaplogparser_build_info", | ||||||
| @ -321,35 +321,30 @@ func writeOut(msg string, filename string) error { | |||||||
| 	return nil | 	return nil | ||||||
| } | } | ||||||
|  |  | ||||||
| // Every 24H, remove sent, milter-rejected and deferred that entered queue more than 5 days ago | // Every 24H, remove connections closed more than 24 hours ago | ||||||
| /* | func periodicallyCleanMQueue(mqueue map[int]*OpenLdapConnection, mqMtx *sync.Mutex) { | ||||||
| func periodicallyCleanMQueue(mqueue map[int]*PostfixLogParser, mqMtx *sync.Mutex) { | 	var ok bool | ||||||
| 	var ok int |  | ||||||
|  |  | ||||||
| 	for range time.Tick(time.Hour * 24) { | 	for range time.Tick(time.Hour * 24) { | ||||||
| 		// Do we need read lock? | 		// Do we need read lock? | ||||||
| 		for _, inmail := range mqueue { | 		for _, ldcon := range mqueue { | ||||||
| 			ok = 0 | 			ok = false | ||||||
| 			// Check all mails were sent (multiple destinations mails) | 			// Check if a close operation exist | ||||||
| 			//  or rejected | 			for _, op := range ldcon.Operations { | ||||||
| 			for _, outmail := range inmail.Messages { | 				if op.OpType == "close" { | ||||||
| 				if outmail.Status == "sent" || outmail.Status == "milter-reject" { | 					if op.Time.Add(time.Hour * 1 * 24).Before(time.Now()) { | ||||||
| 					ok += 1 | 						ok = true | ||||||
| 				} else if outmail.Status == "deferred" { |  | ||||||
| 					if inmail.Time.Add(time.Hour * 5 * 24).Before(time.Now()) { |  | ||||||
| 						ok += 1 |  | ||||||
| 					} | 					} | ||||||
| 				} | 				} | ||||||
| 			} | 			} | ||||||
| 			if ok == len(inmail.Messages) { | 			if ok == true { | ||||||
| 				mqMtx.Lock() | 				mqMtx.Lock() | ||||||
| 				delete(mqueue, inmail.MessageId) | 				delete(mqueue, ldcon.ConnId) | ||||||
| 				mqMtx.Unlock() | 				mqMtx.Unlock() | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| */ |  | ||||||
|  |  | ||||||
| func initConfig() {} | func initConfig() {} | ||||||
|  |  | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user