Fix: panics inside of task was not correctly logged into DB
Feat: slave node use new API to upload file to master
This commit is contained in:
@@ -106,7 +106,7 @@ func (job *CompressTask) Do() {
|
||||
job.TaskModel.SetProgress(TransferringProgress)
|
||||
|
||||
// 上传文件
|
||||
err = fs.UploadFromPath(ctx, zipFile, job.TaskProps.Dst, true, 0)
|
||||
err = fs.UploadFromPath(ctx, zipFile, job.TaskProps.Dst, 0)
|
||||
if err != nil {
|
||||
job.SetErrorMsg(err.Error())
|
||||
return
|
||||
|
||||
@@ -117,16 +117,18 @@ func (job *TransferTask) Do() {
|
||||
}
|
||||
|
||||
// 切换为从机节点处理上传
|
||||
fs.SetPolicyFromPath(path.Dir(dst))
|
||||
fs.SwitchToSlaveHandler(node)
|
||||
err = fs.UploadFromStream(context.Background(), &fsctx.FileStream{
|
||||
File: nil,
|
||||
Size: job.TaskProps.SrcSizes[file],
|
||||
Name: path.Base(dst),
|
||||
VirtualPath: path.Dir(dst),
|
||||
})
|
||||
Src: file,
|
||||
}, false)
|
||||
} else {
|
||||
// 主机节点中转
|
||||
err = fs.UploadFromPath(context.Background(), file, dst, true, 0)
|
||||
err = fs.UploadFromPath(context.Background(), file, dst, 0)
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
package task
|
||||
|
||||
import "github.com/cloudreve/Cloudreve/v3/pkg/util"
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/cloudreve/Cloudreve/v3/pkg/util"
|
||||
)
|
||||
|
||||
// Worker 处理任务的对象
|
||||
type Worker interface {
|
||||
@@ -20,7 +23,7 @@ func (worker *GeneralWorker) Do(job Job) {
|
||||
// 致命错误捕获
|
||||
if err := recover(); err != nil {
|
||||
util.Log().Debug("任务执行出错,%s", err)
|
||||
job.SetError(&JobError{Msg: "致命错误"})
|
||||
job.SetError(&JobError{Msg: "致命错误", Error: fmt.Sprintf("%s", err)})
|
||||
job.SetStatus(Error)
|
||||
}
|
||||
}()
|
||||
|
||||
Reference in New Issue
Block a user