Hintergrundservice Anmutiges Abschalten - Vollständige Arbeit und schreiben Sie an DB

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Hintergrundservice Anmutiges Abschalten - Vollständige Arbeit und schreiben Sie an DB

by Anonymous » 17 Mar 2025, 12:46

Ich habe einen Hintergrundarbeiter, der den Hintergrundservice implementiert (bereitgestellt von MS).

Code: Select all

public class MyService : BackgroundService {

private readonly MyDbContext _context;

public MyService(MyDbContext context) {
//...
}

protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
try {
while (true)
{
stoppingToken.ThrowIfCancellationRequested();
// Do some work
}
} catch(OperationCancelledException) {
_context.Add(new MyLogMessage(){ Error = "MyService cancelled!" });
_context.SaveChanges();
}
// ...
}
}
Wenn der anmutige Heruntergang (in Konsole: Strg+C) angefordert wird, wird der Fangblock ausgelöst, und auch die Savechanges () scheinen ausgeführt zu werden. Aber manchmal wird der Fehler in der Datenbank gespeichert und die Zeit nicht. Auch das EntityFramework druckt eine Einfügungsanweisung in der Konsole, aber das Protokoll befindet sich nicht im dB.>

Top