Lastenverteilung für multiple Prozesse

Dieses Thema im Forum "Applikationsserver" wurde erstellt von Arne Drews, 5. November 2019.

  1. Arne Drews

    Arne Drews Mitglied

    Hi,

    Da es sich hierbei um eine Verständnisfrage handelt, glaube ich im richtigen Unterforum zu sein, ansonsten bitte einfach verschieben, danke.

    Wir haben eine Schnittstelle zu einem Partner entwickelt, über die wir bestimmte Aufträge versenden lassen. Für den Start war es vollkommen i.O., die entsprechenden Aufträge nacheinander abzuarbeiten.

    Der Ablauf für diese Aufträge ist wie folgt:
    Wir laden den Auftrag als Sage-Beleg und passen in den Positionen den Lagerplatz auf das des Partners an. Dann erzeugen wir daraus einen Lieferschein und eine Rechnung. Für Mehrpositionsaufträge kommen noch ein paar Kleinigkeiten dazu, die für die Frage aber nicht relevant sind.

    Der Vorgang wird aktuell 4x am Tag ausgeführt, wobei wir im Schnitt aktuell 75 bis 100 Aufträge pro Durchlauf verarbeiten. Das dauert, bedingt durch die Beleganlagen im Schnitt um die 3 bis 4 Minuten.
    Da unser Ziel langfristig eine Auftragsmenge von >1000 pro Tag ist, also eine Menge von ca. 200 bis 300 pro Durchlauf, möchte ich das gerne auf einen Thread pro Auftrag aufteilen, um die Verarbeitung parallel zum ApplikationServer senden zu können.

    Die Frage:
    In wie weit verkraftet der Sage ApplikationServer es, wenn die Anzahl an Anfragen ankommen?

    Alternative:
    Ich könnte mit asynch arbeiten, allerdings denke ich, dass das kaum Vorteile bringt, denn aufgrund von Fehlerbehandlung und Logauswertung muss ich ja per await auf die Antwort warten, was das ganze aus meiner Sicht nicht performanter machen würde. Beim Multithreading kann ich im jeweiligen Prozess diese Dinge mit abarbeiten, was den Vorteil bringen sollte.

    Hat jemand da eine BestPractice oder Tipps, wie man es besser machen kann?
    Freue mich über hilfreiche Tipps und Infos.

    Danke
    Arne
     

Diese Seite empfehlen