Files
open-im-server/internal/crontask/cron_task.go
T

44 lines
1.1 KiB
Go
Raw Normal View History

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
}