Junior — Middle
Жазуу учурунда маалыматтарды сактоо учурунда көйгөйлөр келип чыктыбы?
sobes.tech AI
AIден жооп
Ооба, бир учурда билдирүү жөнөтүү учурунда маалыматтарды сактоо боюнча көйгөйлөр пайда болгон. Негизги себеп — жазуу жана жөнөтүү операциялары бөлөк жүргүзүлүп, бирдиктүү транзакция болбогондуктан, синхрондоштуруунун бузулушу: билдирүү жөнөтүлүп жатканда, маалыматтар сакталбай калчу, же тескерисинче.
Бул көйгөйдү чечүү үчүн, мен "Unit of Work" үлгүсүн жана маалымат базасындагы транзакциялар механизмин колдонуп, транзакциялык иштетүүнү ишке ашырдым. C# менен Entity Frameworkте бул мындай көрүнөт:
using (var transaction = context.Database.BeginTransaction())
{
try
{
context.Messages.Add(messageEntity);
context.SaveChanges();
messageSender.Send(messageEntity);
transaction.Commit();
}
catch
{
transaction.Rollback();
throw;
}
}
Мындан тышкары, эгер билдирүүнү жөнөтүү ийгиликсиз болсо, базадагы өзгөртүүлөр кайтарылып, маалыматтардын бүтүндүгү жана системанын абалынын туруктуулугу камсыздалат.