Browse Source

策略平台同步过来的文章ID,做微信模板消息推送,同一篇报告12小时只推送一次

xingzai 2 years ago
parent
commit
c8be6a7829
2 changed files with 11 additions and 3 deletions
  1. 9 2
      services/article.go
  2. 2 1
      utils/constants.go

+ 9 - 2
services/article.go

@@ -629,7 +629,7 @@ func GetArticleListByApi(cont context.Context) (err error) {
 	}
 	for _, v := range listUpdateArticle {
 		// 这里直接go出去会出现并发,导致文章md5ID唯一索引限制报错
-		err = HandleArticleListByApi(v.ArticleId, v.Id)
+		err = HandleArticleListByApi(v.ArticleId)
 		if err != nil {
 			utils.FileLog.Info("WxGetToken Result:%s ", err.Error())
 		}
@@ -638,7 +638,7 @@ func GetArticleListByApi(cont context.Context) (err error) {
 }
 
 //处理同步过来的文章
-func HandleArticleListByApi(artcleId, celuePushId int) (err error) {
+func HandleArticleListByApi(artcleId int) (err error) {
 	defer func() {
 		if err != nil {
 			go utils.SendAlarmMsg("处理同步策略平台数据失败"+"GetArticleListByApi ErrMsg:"+err.Error(), 2)
@@ -1153,6 +1153,12 @@ func HandleArticleListByApi(artcleId, celuePushId int) (err error) {
 
 //过滤策略平台报告,研选报告重复推送,以及权限勾选的推送
 func DoArticleOnenIdWxTemplateMsg(articleId int) (err error) {
+	//策略平台同步过来的文章ID,做微信模板消息推送,同一篇报告12小时只推送一次
+	cacheKey := fmt.Sprint(utils.CACHE_KEY_ARTICLE_ID_TEMPLATE, ":ArticleId", articleId)
+	ttlTime := utils.Rc.GetRedisTTL(cacheKey)
+	if ttlTime > 0 {
+		return err
+	}
 	var msg string
 	defer func() {
 		if err != nil {
@@ -1502,5 +1508,6 @@ func DoArticleOnenIdWxTemplateMsg(articleId int) (err error) {
 			}
 		}
 	}
+	utils.Rc.Put(cacheKey, articleId, time.Hour*12)
 	return
 }

+ 2 - 1
utils/constants.go

@@ -61,7 +61,8 @@ var (
 
 //缓存key
 const (
-	CACHE_KEY_USER_VIEW = "user_view_record" //用户阅读数据
+	CACHE_KEY_USER_VIEW           = "user_view_record"           //用户阅读数据
+	CACHE_KEY_ARTICLE_ID_TEMPLATE = "ce_lue_article_id_template" //策略平台同步过来的文章ID,做微信模板消息推送,同一篇报告12小时只推送一次
 )
 
 //模板消息推送类型