2022-08-09 16:38:33 +08:00
|
|
|
package cronTask
|
|
|
|
|
|
|
|
|
|
import (
|
2022-08-10 15:14:51 +08:00
|
|
|
"Open_IM/pkg/common/config"
|
2022-08-09 16:38:33 +08:00
|
|
|
"Open_IM/pkg/common/log"
|
|
|
|
|
"Open_IM/pkg/utils"
|
2022-08-10 12:02:50 +08:00
|
|
|
"fmt"
|
2022-08-10 12:09:28 +08:00
|
|
|
"time"
|
2022-12-26 10:25:42 +08:00
|
|
|
|
|
|
|
|
"github.com/robfig/cron/v3"
|
2022-08-09 16:38:33 +08:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
const cronTaskOperationID = "cronTaskOperationID-"
|
2023-02-15 15:52:32 +08:00
|
|
|
const moduleName = "cron"
|
2022-08-09 16:38:33 +08:00
|
|
|
|
2022-11-24 19:17:29 +08:00
|
|
|
func StartCronTask(userID, workingGroupID string) {
|
2023-02-15 15:52:32 +08:00
|
|
|
log.NewPrivateLog(moduleName)
|
2022-11-02 11:40:55 +08:00
|
|
|
log.NewInfo(utils.OperationIDGenerator(), "start cron task", "cron config", config.Config.Mongo.ChatRecordsClearTime)
|
2023-01-30 11:10:26 +08:00
|
|
|
fmt.Println("cron task start, config", config.Config.Mongo.ChatRecordsClearTime)
|
2022-11-24 19:17:29 +08:00
|
|
|
if userID != "" {
|
2022-08-09 16:38:33 +08:00
|
|
|
operationID := getCronTaskOperationID()
|
2023-02-16 15:20:59 +08:00
|
|
|
ClearUsersMsg(operationID, []string{userID})
|
2022-11-24 19:17:29 +08:00
|
|
|
}
|
|
|
|
|
if workingGroupID != "" {
|
|
|
|
|
operationID := getCronTaskOperationID()
|
2023-02-16 15:20:59 +08:00
|
|
|
ClearSuperGroupMsg(operationID, []string{workingGroupID})
|
2022-11-24 19:17:29 +08:00
|
|
|
}
|
|
|
|
|
if userID != "" || workingGroupID != "" {
|
|
|
|
|
fmt.Println("clear msg finished")
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
c := cron.New()
|
2022-11-29 18:08:47 +08:00
|
|
|
_, err := c.AddFunc(config.Config.Mongo.ChatRecordsClearTime, ClearAll)
|
2022-08-09 16:38:33 +08:00
|
|
|
if err != nil {
|
2022-11-01 16:54:23 +08:00
|
|
|
fmt.Println("start cron failed", err.Error(), config.Config.Mongo.ChatRecordsClearTime)
|
2022-08-09 16:38:33 +08:00
|
|
|
panic(err)
|
|
|
|
|
}
|
|
|
|
|
c.Start()
|
2022-08-10 12:08:28 +08:00
|
|
|
fmt.Println("start cron task success")
|
2022-08-10 12:09:28 +08:00
|
|
|
for {
|
2022-11-01 16:54:23 +08:00
|
|
|
time.Sleep(10 * time.Second)
|
2022-08-10 12:09:28 +08:00
|
|
|
}
|
2022-08-09 16:38:33 +08:00
|
|
|
}
|