mirror of
https://github.com/gotenberg/gotenberg.git
synced 2026-08-17 20:52:14 +01:00
fix(pdfengines): split and read metadata pdf engines calls
This commit is contained in:
@@ -74,16 +74,14 @@ func (multi *multiPdfEngines) Split(ctx context.Context, logger *zap.Logger, mod
|
|||||||
var err error
|
var err error
|
||||||
var mu sync.Mutex // to safely append errors.
|
var mu sync.Mutex // to safely append errors.
|
||||||
|
|
||||||
resultChan := make(chan splitResult, len(multi.splitEngines))
|
|
||||||
|
|
||||||
for _, engine := range multi.splitEngines {
|
for _, engine := range multi.splitEngines {
|
||||||
|
resultChan := make(chan splitResult, 1)
|
||||||
|
|
||||||
go func(engine gotenberg.PdfEngine) {
|
go func(engine gotenberg.PdfEngine) {
|
||||||
outputPaths, err := engine.Split(ctx, logger, mode, inputPath, outputDirPath)
|
outputPaths, err := engine.Split(ctx, logger, mode, inputPath, outputDirPath)
|
||||||
resultChan <- splitResult{outputPaths: outputPaths, err: err}
|
resultChan <- splitResult{outputPaths: outputPaths, err: err}
|
||||||
}(engine)
|
}(engine)
|
||||||
}
|
|
||||||
|
|
||||||
for range multi.splitEngines {
|
|
||||||
select {
|
select {
|
||||||
case result := <-resultChan:
|
case result := <-resultChan:
|
||||||
if result.err != nil {
|
if result.err != nil {
|
||||||
@@ -160,16 +158,14 @@ func (multi *multiPdfEngines) ReadMetadata(ctx context.Context, logger *zap.Logg
|
|||||||
var err error
|
var err error
|
||||||
var mu sync.Mutex // to safely append errors.
|
var mu sync.Mutex // to safely append errors.
|
||||||
|
|
||||||
resultChan := make(chan readMetadataResult, len(multi.readMetadataEngines))
|
|
||||||
|
|
||||||
for _, engine := range multi.readMetadataEngines {
|
for _, engine := range multi.readMetadataEngines {
|
||||||
|
resultChan := make(chan readMetadataResult, 1)
|
||||||
|
|
||||||
go func(engine gotenberg.PdfEngine) {
|
go func(engine gotenberg.PdfEngine) {
|
||||||
metadata, err := engine.ReadMetadata(ctx, logger, inputPath)
|
metadata, err := engine.ReadMetadata(ctx, logger, inputPath)
|
||||||
resultChan <- readMetadataResult{metadata: metadata, err: err}
|
resultChan <- readMetadataResult{metadata: metadata, err: err}
|
||||||
}(engine)
|
}(engine)
|
||||||
}
|
|
||||||
|
|
||||||
for range multi.readMetadataEngines {
|
|
||||||
select {
|
select {
|
||||||
case result := <-resultChan:
|
case result := <-resultChan:
|
||||||
if result.err != nil {
|
if result.err != nil {
|
||||||
|
|||||||
Reference in New Issue
Block a user