none
Asp .Net core mit aufwändiger Datenverarbeitung

    Frage

  • Hallo NG,

    Ich habe eine SPA mit Angular und eine Asp .net core als Server. Wenn sich gewisse Daten ändern, dann muss ich diese per SOAP an einen anderen Server übertragen.  Diese kann unter gewissen Umständen sehr lange dauern, da es möglich ist 5.000 – 10.000 Übertragungen an den SOAP-Server vorzunehmen.

    Nun meine Frage, was ist die beste Möglichkeit? Kann ich das über async Task lösen, oder einen eigenen Thread über einen ThreadPool ausführen?

    Mir ist es natürlich wichtig, dass der Anwender nicht blockiert ist. Oder gibt es einen besseren Weg?

    Danke für jeden Hinweis und Tipp.

    Grüße Ingo

    Mittwoch, 16. Mai 2018 12:48

Alle Antworten

  • Hallo,

    meine größte Herausforderung war dabei, das mir meine Ressourcen immer wieder vernichtet wurden. Ich musste große Datenmengen von einer Datei einlesen oder runter schreiben. Gleichzeitig sollte die Oberfläche regelmäßig Updates geben können.

    Der Transistente Datenbankzugriff könnte dir ärger machen. Ich habe es damit gelößt, das ich eine Singletonklasse erstellt habe, die als Funktions-Parameter eben jeder Transistenter Datenbankzugriff erhielt

    await ImportService.RunImportAsync(body.Filename, DB);

    return StatusCode(StatusCodes.Success_2xx.OK);
    

    Hier ist der Importservice die Singletonklasse. RunImportAsync ist ein Asyncroner Task. 

     public async Task RunImportAsync(string fileName, DataService data)
            {
                await Task.Run(() =>
                {
                    if (IsFileExists(fileName))
                        throw new Exception($"Datei {fileName} nicht gefunden.");
    [weiter tolle Befehle]
                });
            }

    Ich hoffe diese Tipps helfen dir weiter. Ich habe den Code noch nicht Produktiv, aber meine Tests melden keine Fehler. 

    Lg Uriel

    Dienstag, 26. Juni 2018 09:28