浏览代码

数据修正推送时,先删除redis

maxiaoshan 2 年之前
父节点
当前提交
0db63541de
共有 6 个文件被更改,包括 32 次插入3 次删除
  1. 4 0
      src/config.json
  2. 12 2
      src/front/lua.go
  3. 2 0
      src/main.go
  4. 9 0
      src/spider/spider.go
  5. 4 0
      src/task/task.go
  6. 1 1
      src/web/templates/lua/warnedit.html

+ 4 - 0
src/config.json

@@ -60,6 +60,10 @@
   "testdir": "res/test/spider_test.lua",
   "serveraddress": "127.0.0.1:8030",
   "jsserveraddress":  "127.0.0.1:8031",
+  "redisclusteraddrs": [
+    "192.168.3.207:2179",
+    "192.168.3.166:2379"
+  ],
   "word":{
     "keyword":"(抽签|中标|招标|成交|合同|中标候选人|资格预审|拟建|邀请|询价|比选|议价|竞价|磋商|采购|招投标|答疑|变更公告|更正公告|竞争性谈判|竞谈|意见征询|澄清|单一来源|流标|废标|验收公告|中止|终止|违规|处罚|征集公告|开标结果|评审结果|监理|招租|租赁|评判结果|项目|遴选|补遗|竞标|征求意见)",
     "notkeyword":"(招聘|拍卖|出租|出让|使用权|资产)"

+ 12 - 2
src/front/lua.go

@@ -8,6 +8,7 @@ import (
 	"io/ioutil"
 	"mime/multipart"
 	qu "qfw/util"
+	"spider"
 	. "spiderutil"
 	"strings"
 	. "task"
@@ -212,12 +213,21 @@ func (f *Front) LuaDataSend() {
 			}
 			if mustFiledNum > 0 {
 				flag, bidid, bidcoll := SaveObj(4002, "title", result)
-				logger.Info(bid, flag, bidid, bidcoll)
+				logger.Info(bid, "	", flag, "	", bidid, "	", bidcoll)
 				update["sendflag"] = flag
 				update["biddingid"] = bidid
 				update["biddingcoll"] = bidcoll
 				TagToSpiderWarnErr(stype, id, reasons, update) //spider_warn_err日志
-				success = true
+				if flag == "true" {
+					success = true
+					if bidcoll != "" && bidid != "" {
+						msg = "保存成功;数据所在表:" + bidcoll + ";数据ID:" + bidid
+					} else {
+						msg = "推送成功,但数据存在异常或被判重!"
+						hashHref := spider.HexText(qu.ObjToString(data["href"])) //推送的异常数据放回全量redis
+						RedisClusterSet(hashHref, "", -1)
+					}
+				}
 			} else {
 				msg = "推送失败,无有效字段"
 			}

+ 2 - 0
src/main.go

@@ -24,6 +24,8 @@ func init() {
 	util.InitMgoPool()        //初始化连接
 	util.InitOther()
 	InitUdp()
+	//redis集群
+	sp.InitRedisCluster(sp.Config.RedisClusterAddrs)
 	//xweb框架配置
 	xweb.Config.RecoverPanic = true
 	xweb.Config.Profiler = true

+ 9 - 0
src/spider/spider.go

@@ -1,6 +1,8 @@
 package spider
 
 import (
+	"crypto/sha256"
+	"fmt"
 	"github.com/donnie4w/go-logger/logger"
 	lua "github.com/yuin/gopher-lua"
 	"math/rand"
@@ -119,3 +121,10 @@ func ParseDate2Int64(str string) int64 {
 		return t.Unix()
 	}
 }
+
+//求hash
+func HexText(href string) string {
+	h := sha256.New()
+	h.Write([]byte(href))
+	return fmt.Sprintf("%x", h.Sum(nil))
+}

+ 4 - 0
src/task/task.go

@@ -326,6 +326,10 @@ func AnalysisProjectInfo(data map[string]interface{}) bool {
 //调用消息保存
 func SaveObj(event int, checkAtrr string, data map[string]interface{}) (flagstr, biddingid, biddingcoll string) {
 	defer mu.Catch()
+	//删除redis
+	hashHref := spider.HexText(qu.ObjToString(data["href"]))
+	sputil.RedisClusterDelete(hashHref)
+
 	tmp, _ := json.Marshal([]interface{}{checkAtrr, []interface{}{data}})
 	flag := true //是否传输失败
 	idAndColl := ""

+ 1 - 1
src/web/templates/lua/warnedit.html

@@ -273,7 +273,7 @@
                 },
                 success: function (r) {
                     if (r.success) {
-                        showMsg("保存成功",function (){
+                        showMsg(r.msg,function (){
                             window.location.href="/front/lua/warnlist"
                         })
                     } else {