Ich muss Multithreading-Hintergrund-Job für die Importdatei implementieren. Ich habe es mit Hintergrundjob (Hangfire) implementiert. Aber wenn ich einen Thread verwende, geht es sehr langsam. Die Funktion sieht so aus.DbContext pro Anfrage aspboilerplate
Ich benutze Nicht-Transaktionseinheit, um Änderungen in db sofort zu speichern.
Das Problem tritt auf, wenn ich versuche, dies mit Producer-Consumer-Datenflussmuster zu verwenden. Ich lege die Ausnahme "Eine zweite Operation wurde in diesem Kontext gestartet, bevor eine vorherige asynchrone Operation abgeschlossen wurde."
Die Frage ist, wie isoliert DbContext innerhalb dieser Methode erstellen. Bitte helfen Sie mir.
Ja. Ich finde heraus, bevor Antwort bekommen. Danken. Aber es gab viele Probleme. Ich habe vergessen, MaxLength für E-Mail-Feld hinzuzufügen, auf diese Weise ist es nicht möglich, einen Index für dieses Feld zu erstellen. Aber fließende API hat nichts darüber gesagt. Diese Dinge kommen zu sehr langsamer Suche, auch wenn der Tisch nicht so groß ist. Nach dem Erstellen von Daten Annotation für Feld zur Einschränkung der Länge des Feldes Index erstellt wurde und alles beginnt, schnell zu arbeiten. Und noch etwas, ich benutze Methode für check exist-Methode in db, es funktioniert schneller als firstOfDefault-Methode. – grinay
Was Sie erwähnen, ist bereits als Problem abgelegt ... Sie können https://github.com/aspnetboilerplate/aspnetboilerplate/issues/2762 –
ich aktualisiert meine Antwort (sql Bulk einfügen) –