Modify: close file in main routine

This commit is contained in:
HFO4
2019-12-11 18:52:41 +08:00
parent d0bb123e03
commit 18968458a4
7 changed files with 30 additions and 5 deletions

View File

@@ -0,0 +1 @@
package filesystem

View File

@@ -93,7 +93,6 @@ func (fs *FileSystem) GetContent(ctx context.Context, path string) (io.ReadSeeke
// 将当前存储策略重设为文件使用的
fs.Policy = fs.FileTarget[0].GetPolicy()
err = fs.dispatchHandler()
defer fs.CleanTargets()
if err != nil {
return nil, err
}

View File

@@ -75,6 +75,7 @@ func TestFileSystem_GetContent(t *testing.T) {
rs, err := fs.GetContent(ctx, "not exist file")
asserts.Equal(ErrObjectNotExist, err)
asserts.Nil(rs)
fs.CleanTargets()
// 未知存储策略
file, err := os.Create("TestFileSystem_GetContent.txt")
@@ -90,6 +91,7 @@ func TestFileSystem_GetContent(t *testing.T) {
rs, err = fs.GetContent(ctx, "/TestFileSystem_GetContent.txt")
asserts.Error(err)
asserts.NoError(mock.ExpectationsWereMet())
fs.CleanTargets()
// 打开文件失败
mock.ExpectQuery("SELECT(.+)").
@@ -101,6 +103,7 @@ func TestFileSystem_GetContent(t *testing.T) {
rs, err = fs.GetContent(ctx, "/TestFileSystem_GetContent.txt")
asserts.Equal(serializer.CodeIOFailed, err.(serializer.AppError).Code)
asserts.NoError(mock.ExpectationsWereMet())
fs.CleanTargets()
// 打开成功
mock.ExpectQuery("SELECT(.+)").

View File

@@ -32,12 +32,13 @@ func (handler Handler) Get(ctx context.Context, path string) (io.ReadSeeker, err
}
// 开启一个协程用于请求结束后关闭reader
go closeReader(ctx, file)
// go closeReader(ctx, file)
return file, nil
}
// closeReader 用于在请求结束后关闭reader
// TODO 让业务代码自己关闭
func closeReader(ctx context.Context, closer io.Closer) {
select {
case <-ctx.Done():