mirror of
https://github.com/krau/SaveAny-Bot.git
synced 2026-06-02 22:20:41 +08:00
feat: add retry configuration for failed save task
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
workers = 4 # 同时下载文件数
|
workers = 4 # 同时下载文件数
|
||||||
|
retry = 3 # 下载失败重试次数
|
||||||
|
|
||||||
[telegram]
|
[telegram]
|
||||||
token = "" # Bot Token
|
token = "" # Bot Token
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import (
|
|||||||
|
|
||||||
type Config struct {
|
type Config struct {
|
||||||
Workers int `toml:"workers" mapstructure:"workers"`
|
Workers int `toml:"workers" mapstructure:"workers"`
|
||||||
|
Retry int `toml:"retry" mapstructure:"retry"` // Retry times for failed tasks
|
||||||
|
|
||||||
Temp tempConfig `toml:"temp" mapstructure:"temp"`
|
Temp tempConfig `toml:"temp" mapstructure:"temp"`
|
||||||
Log logConfig `toml:"log" mapstructure:"log"`
|
Log logConfig `toml:"log" mapstructure:"log"`
|
||||||
|
|||||||
18
core/core.go
18
core/core.go
@@ -100,9 +100,21 @@ func processPendingTask(task *types.Task) error {
|
|||||||
Message: "下载完成, 正在转存文件...",
|
Message: "下载完成, 正在转存文件...",
|
||||||
ID: task.ReplyMessageID,
|
ID: task.ReplyMessageID,
|
||||||
})
|
})
|
||||||
|
if config.Cfg.Retry <= 0 {
|
||||||
if err := storage.Save(task.Storage, task.Ctx, dest.Name(), task.StoragePath); err != nil {
|
if err := storage.Save(task.Storage, task.Ctx, dest.Name(), task.StoragePath); err != nil {
|
||||||
return fmt.Errorf("Failed to save file: %w", err)
|
return fmt.Errorf("Failed to save file: %w", err)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
for i := 0; i < config.Cfg.Retry; i++ {
|
||||||
|
if err := storage.Save(task.Storage, task.Ctx, dest.Name(), task.StoragePath); err != nil {
|
||||||
|
logger.L.Errorf("Failed to save file: %s, retrying...", err)
|
||||||
|
if i == config.Cfg.Retry-1 {
|
||||||
|
return fmt.Errorf("Failed to save file: %w", err)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user