XML 파일에 통계를 작성합니다. 데이터 수를 잃어버린 문제가 있습니까?

StackOverflow https://stackoverflow.com/questions/2273930

  •  20-09-2019
  •  | 
  •  

문제

안녕하세요 저는 해당 코드에 대한 속성 및 페이지 시청 수 코드를 보유하는 XML을 만들었습니다.

<?xml version="1.0" encoding="utf-8"?>
<data>
    <nehnutelnost code="BSPO066P">35</nehnutelnost>
     <nehnutelnost code="PMDM029P">4</nehnutelnost>
</data>

나는 이것으로 약점을 발견했다고 생각합니다. 오늘날 모든 카운터가 사라지고 모두 처음부터 시작했습니다.

이것은 XML 파일의 코드 존재를 확인하고 +1을 추가하거나 1으로 새 XML 태그를 작성하는 코드입니다.

        int intSeenCount = 0;
        XDocument xmlSeenCount = new XDocument();
        xmlSeenCount = XDocument.Load(Server.MapPath(@"App_Data\lozjoCounts.xml"));

        XElement xmlElement = xmlSeenCount.XPathSelectElement("data/nehnutelnost[@code = '" + strCisloZakazky + "']");

            if (xmlElement == null)
            {
                xmlElement = (new XElement("nehnutelnost",
                                                        new XAttribute("code", strCisloZakazky),
                                                        ++intSeenCount));
                xmlSeenCount.Element("data").Add(xmlElement);
            }
            else
            {
                intSeenCount = (Convert.ToInt32(xmlElement.Value) + 1);
                xmlElement.Value = intSeenCount.ToString();
            }
            xmlSeenCount.Save(Server.MapPath(@"App_Data\lozjoCounts.xml"));

내 질문은 다음과 같습니다.

  1. 다른 사람이 동시에 열린 페이지가있을 수 있고 파일이 방금 덮어 쓰거나 어떻게 든 데이터를 재설정했을 가능성이 있습니까?

  2. 페이지 방문자가 향후 재설정되지 않도록 번호를 유지하는 방법이 있습니까?

고맙습니다.

페로

도움이 되었습니까?

해결책

동시성 문제가있는 것 같습니다.

당신은 할 수 있습니다 자물쇠 작문 작업이지만, 귀하는 귀하가 응용 프로그램에서 가능한 병목 현상을 생성하고 있음을 알고 있어야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top