Ver código fonte

wip:文档转换异常告警

wangshan 1 ano atrás
pai
commit
fb4b742d20

+ 10 - 10
rpc/partnerlib/conversion/conversion.go

@@ -7,7 +7,6 @@ import (
 	"app.yhyue.com/moapp/jy_docs/services/partner"
 	"app.yhyue.com/moapp/jyfs/rpc/filesystem"
 	"fmt"
-	"log"
 	"os"
 	"os/exec"
 	"sync"
@@ -39,7 +38,7 @@ func NewConversion(docId, fileName, fileId, suffix string, b []byte, size int) *
 		Size:     size,
 	}
 }
-func (c *Conversion) ToConversion() {
+func (c *Conversion) ToConversion() (msg string) {
 	CL.Lock()
 	defer CL.Unlock()
 	// 检查目录是否存在
@@ -48,7 +47,7 @@ func (c *Conversion) ToConversion() {
 		// 创建输出文件夹
 		err := os.MkdirAll(filePath, 0755)
 		if err != nil {
-			fmt.Println("Error creating output folder:", err)
+			msg = fmt.Sprintf("Error creating output folder:%s", err.Error())
 			return
 		}
 	}
@@ -56,20 +55,20 @@ func (c *Conversion) ToConversion() {
 	inputFile := fmt.Sprintf("%s/%s.%s", filePath, c.FileId, c.Suffix)
 	file, err := os.Create(inputFile)
 	if err != nil {
-		fmt.Println("Error creating file:", err)
+		msg = fmt.Sprintf("Error creating file:%s", err.Error())
 		return
 	}
 	defer file.Close()
 	// 设置文件权限
 	err = file.Chmod(0777)
 	if err != nil {
-		fmt.Printf("Error setting file permissions for %s: %v\n", filePath, err)
+		msg = fmt.Sprintf("Error setting file permissions for %s: %v\n", filePath, err)
 		return
 	}
 	// 写入文件流
 	_, err = file.Write(c.Content)
 	if err != nil {
-		fmt.Println("Error writing to file:", err)
+		msg = fmt.Sprintf("Error writing to file:%s", err.Error())
 		return
 	}
 	// 开始执行转换
@@ -78,13 +77,13 @@ func (c *Conversion) ToConversion() {
 	cmd.Stderr = nil
 	err = cmd.Run()
 	if err != nil {
-		log.Println(fmt.Errorf("conversion failed: %w", err))
+		msg = fmt.Sprintf("conversion failed: %s", err.Error())
 		return
 	}
 	pdfFile := fmt.Sprintf("%s/%s.%s", filePath, c.FileId, fileSuffix)
 	c.Content, err = os.ReadFile(pdfFile)
 	if err != nil {
-		fmt.Println(fmt.Errorf("read pdf err:%s", err.Error()))
+		msg = fmt.Sprintf("read pdf err:%s", err.Error())
 		return
 	}
 	if len(c.Content) > 0 {
@@ -101,7 +100,7 @@ func (c *Conversion) ToConversion() {
 			Charset:        util.GetFileChardet(c.Content),
 		})
 		if fileRes.OssDocId == "" {
-			fmt.Println(" upload oss err:", fileRes.Msg)
+			msg = fmt.Sprintf(" upload oss err:%s", fileRes.Msg)
 		} else {
 			//移除文件
 			os.Remove(inputFile)
@@ -111,8 +110,9 @@ func (c *Conversion) ToConversion() {
 				OssPdfId:   fmt.Sprintf("%s.%s", c.FileId, fileSuffix),
 				UpdateDate: time.Now(),
 			}); err != nil {
-				log.Println(" update doc  osspdfid err :", err.Error())
+				msg = fmt.Sprintf(" update doc  osspdfid err :%s", err.Error())
 			}
 		}
 	}
+	return
 }

+ 1 - 1
rpc/partnerlib/etc/partnerlib.yaml

@@ -40,6 +40,6 @@ FileSystemConf:
 OssInfo:
   BucketName: jydocs-std #上线前需要配置新bucket
 Conversion:
-  Switch: true
+  Switch: false
   DocFormat:
     doc: true

+ 3 - 1
rpc/partnerlib/service/docDownload.go

@@ -83,7 +83,9 @@ func DocDownload(in *partnerlib.UserDownloadRequest) (res *partnerlib.UDRes, err
 						warn.SendMsgByWXURL(fmt.Sprintf("文档id:%s,文档名称:%s,上传到oss异常:%s", _docInfo.Id, _docInfo.DocName, err.Error()))
 					} else if IC.C.Conversion.Switch && IC.C.Conversion.DocFormat[_docInfo.DocFileSuffix] {
 						//转换pdf
-						conversion.NewConversion(_docInfo.Id, _docInfo.DocName, _fileId, _docInfo.DocFileSuffix, b, _docInfo.DocFileSize).ToConversion()
+						if msg := conversion.NewConversion(_docInfo.Id, _docInfo.DocName, _fileId, _docInfo.DocFileSuffix, b, _docInfo.DocFileSize).ToConversion(); msg != "" {
+							warn.SendMsgByWXURL(fmt.Sprintf("文档 %s--%s 转换 pdf格式异常:%s", _docInfo.Id, _docInfo.DocName, msg))
+						}
 					}
 				}(ossId, fileId, fileUploadCache, docInfo)
 				//更新doc

+ 1 - 1
rpc/partnerlib/test/partner_test.http

@@ -6,7 +6,7 @@ GRPC 127.0.0.1:8087/partnerlib.Partner/DocDownload
   "mgoUserId": "65781a99e994f1ed2bf3f361",
   "positionId": 1205591416,
   "phone": "18238182402",
-  "docId": "docin-3179484814",
+  "docId": "docin-3180982172",
   "state": 1
 }