Context tiefer leiten. Blockierung stört.

This commit is contained in:
Marco Kittel 2025-06-29 08:59:15 +02:00
parent 504cebebb9
commit 5858e70c0d
1 changed files with 42 additions and 35 deletions

View File

@ -1,6 +1,7 @@
package eliofile
import (
"context"
"fmt"
"os"
"strings"
@ -46,8 +47,12 @@ func NewElioDateiFoo(lookUpDir string, process ElioHandleFunc) *ElioDateiFoo {
// Warenhausnamen in eine eine Hashmap ablegen. Dopplungen mit dem spätesten Zeitpunkt behalten.
// Veraltete Dateien mit Präfix no-import und Postifx .old benennen.
// Gültige Dateinamen zur Extraktion in Closure übergeben.
func (f *ElioDateiFoo) ScanCsv(data chan<- CountryCsvData) {
func (f *ElioDateiFoo) ScanCsv(ctx context.Context, data chan<- CountryCsvData) {
defer close(data)
select {
case <-ctx.Done():
fmt.Println("Abbruch angefordert im Verarbeitungsprozess.")
default:
files, err := os.ReadDir(f.lookUpDir)
if err != nil {
fmt.Println(err)
@ -55,6 +60,7 @@ func (f *ElioDateiFoo) ScanCsv(data chan<- CountryCsvData) {
filemap := make(map[string]filedata)
for _, file := range files {
fmt.Printf("Lese Datei: %s\n", file)
if !strings.Contains(file.Name(), FileExt) {
continue
}
@ -91,3 +97,4 @@ func (f *ElioDateiFoo) ScanCsv(data chan<- CountryCsvData) {
go f.process(v.filename, data)
}
}
}