From d977252eba556e8340ebfcbd60f23c09657fe11b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E6=99=AF=E9=98=B3?= <1656488874@qq.com> Date: Fri, 27 Sep 2019 10:14:48 +0800 Subject: [PATCH] fix --- backend/model/spider.go | 10 ++--- backend/services/spider_handler/spider.go | 1 + .../services/spider_handler/spider_test.go | 38 ++++++++++++++++++- 3 files changed, 42 insertions(+), 7 deletions(-) diff --git a/backend/model/spider.go b/backend/model/spider.go index 88fdc3ca..5d8fa482 100644 --- a/backend/model/spider.go +++ b/backend/model/spider.go @@ -18,12 +18,12 @@ type Spider struct { Id bson.ObjectId `json:"_id" bson:"_id"` // 爬虫ID Name string `json:"name" bson:"name"` // 爬虫名称(唯一) DisplayName string `json:"display_name" bson:"display_name"` // 爬虫显示名称 - Type string `json:"type"` // 爬虫类别 + Type string `json:"type" bson:"type"` // 爬虫类别 FileId bson.ObjectId `json:"file_id" bson:"file_id"` // GridFS文件ID - Col string `json:"col"` // 结果储存位置 - Site string `json:"site"` // 爬虫网站 + Col string `json:"col" bson:"col"` // 结果储存位置 + Site string `json:"site" bson:"site"` // 爬虫网站 Envs []Env `json:"envs" bson:"envs"` // 环境变量 - Remark string `json:"remark"` // 备注 + Remark string `json:"remark" bson:"remark"` // 备注 // 自定义爬虫 Src string `json:"src" bson:"src"` // 源码位置 Cmd string `json:"cmd" bson:"cmd"` // 执行命令 @@ -130,7 +130,7 @@ func GetSpiderByName(name string) *Spider { var result *Spider if err := c.Find(bson.M{"name": name}).One(result); err != nil { - log.Errorf("get spider error: %s", err.Error()) + log.Errorf("get spider error: %s, spider_name: %s", err.Error(), name) debug.PrintStack() return result } diff --git a/backend/services/spider_handler/spider.go b/backend/services/spider_handler/spider.go index d5e377df..ac857e0a 100644 --- a/backend/services/spider_handler/spider.go +++ b/backend/services/spider_handler/spider.go @@ -107,6 +107,7 @@ func (s *SpiderSync) Download() { // 解压缩临时文件到目标文件夹 dstPath := filepath.Join( viper.GetString("spider.path"), + s.Spider.Name, ) if err := utils.DeCompress(tmpFile, dstPath); err != nil { log.Errorf(err.Error()) diff --git a/backend/services/spider_handler/spider_test.go b/backend/services/spider_handler/spider_test.go index 5289e4d8..f7bf97bf 100644 --- a/backend/services/spider_handler/spider_test.go +++ b/backend/services/spider_handler/spider_test.go @@ -2,18 +2,52 @@ package spider_handler import ( "crawlab/config" + "crawlab/database" + "crawlab/model" "github.com/apex/log" + "github.com/globalsign/mgo/bson" + "runtime/debug" "testing" ) +var s SpiderSync + func init() { if err := config.InitConfig("../../conf/config.yml"); err != nil { log.Fatal("Init config failed") } log.Infof("初始化配置成功") + + // 初始化Mongodb数据库 + if err := database.InitMongo(); err != nil { + log.Error("init mongodb error:" + err.Error()) + debug.PrintStack() + panic(err) + } + log.Info("初始化Mongodb数据库成功") + + // 初始化Redis数据库 + if err := database.InitRedis(); err != nil { + log.Error("init redis error:" + err.Error()) + debug.PrintStack() + panic(err) + } + log.Info("初始化Redis数据库成功") + + s = SpiderSync{ + Spider: model.Spider{ + Id: bson.ObjectIdHex("5d8d5e4b44500b000150009c"), + Name: "scrapy-pre_sale", + FileId: bson.ObjectIdHex("5d8d5e4b44500b0001500098"), + Src: "/opt/crawlab/spiders/scrapy-pre_sale", + }, + } } func TestSpiderSync_CreateMd5File(t *testing.T) { - s := SpiderSync{} - s.CreateMd5File("asssss", "gongyu_abc") + s.CreateMd5File("this is md5") +} + +func TestSpiderSync_Download(t *testing.T) { + s.Download() }