|
@@ -44,25 +44,36 @@ public class HeartBeatCheckJob : IJob
|
|
|
watch.Start();
|
|
|
|
|
|
using (var db = maindbContextFactory.CreateDbContext())
|
|
|
+ using (var transaction = db.Database.BeginTransaction())
|
|
|
{
|
|
|
- foreach (var session in clients)
|
|
|
+ try
|
|
|
{
|
|
|
- var machine = new Machine() { Id = session.MachineId };
|
|
|
- if (machine != null)
|
|
|
+ foreach (var session in clients)
|
|
|
{
|
|
|
- //db.Configuration.AutoDetectChangesEnabled = false;
|
|
|
- //db.Configuration.ValidateOnSaveEnabled = false;
|
|
|
- db.Machine.Attach(machine);
|
|
|
- machine.HeartbeatUpdatedOn = DateTime.UtcNow;
|
|
|
- machine.ConnectionType = session.UriScheme.Equals("wss") ? 2 : 1;
|
|
|
- db.Entry(machine).Property(x => x.HeartbeatUpdatedOn).IsModified = true;
|
|
|
- db.Entry(machine).Property(x => x.ConnectionType).IsModified = true;
|
|
|
- db.SaveChanges();
|
|
|
- db.ChangeTracker.Clear();
|
|
|
+ var machine = new Machine() { Id = session.MachineId };
|
|
|
+ if (machine != null)
|
|
|
+ {
|
|
|
+ //db.Configuration.AutoDetectChangesEnabled = false;
|
|
|
+ //db.Configuration.ValidateOnSaveEnabled = false;
|
|
|
+ db.Machine.Attach(machine);
|
|
|
+ machine.HeartbeatUpdatedOn = DateTime.UtcNow;
|
|
|
+ machine.ConnectionType = session.UriScheme.Equals("wss") ? 2 : 1;
|
|
|
+ db.Entry(machine).Property(x => x.HeartbeatUpdatedOn).IsModified = true;
|
|
|
+ db.Entry(machine).Property(x => x.ConnectionType).IsModified = true;
|
|
|
+ //db.SaveChanges();
|
|
|
+ db.SaveChanges();
|
|
|
+ transaction.Commit();
|
|
|
+ db.ChangeTracker.Clear();
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ transaction.Rollback();
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
+
|
|
|
watch.Stop();
|
|
|
if (watch.ElapsedMilliseconds / 1000 > 5)
|
|
|
{
|