package task import ( "gitlink.org.cn/cloudream/common/pkgs/distlock" "gitlink.org.cn/cloudream/common/pkgs/task" "gitlink.org.cn/cloudream/storage/common/pkgs/accessstat" "gitlink.org.cn/cloudream/storage/common/pkgs/connectivity" "gitlink.org.cn/cloudream/storage/common/pkgs/downloader" "gitlink.org.cn/cloudream/storage/common/pkgs/storage/shard/pool" ) type TaskContext struct { distlock *distlock.Service connectivity *connectivity.Collector downloader *downloader.Downloader accessStat *accessstat.AccessStat shardStorePool *pool.ShardStorePool } // 需要在Task结束后主动调用,completing函数将在Manager加锁期间被调用, // 因此适合进行执行结果的设置 type CompleteFn = task.CompleteFn type Manager = task.Manager[TaskContext] type TaskBody = task.TaskBody[TaskContext] type Task = task.Task[TaskContext] type CompleteOption = task.CompleteOption func NewManager(distlock *distlock.Service, connectivity *connectivity.Collector, downloader *downloader.Downloader, accessStat *accessstat.AccessStat, shardStorePool *pool.ShardStorePool) Manager { return task.NewManager(TaskContext{ distlock: distlock, connectivity: connectivity, downloader: downloader, accessStat: accessStat, shardStorePool: shardStorePool, }) }