새 작업을 처리 할 수있는 경우 60 초마다 60 초마다 실행되는 작업 에이전트가 있습니다. 처리하는 동안 에이전트는 로깅 목적으로 정적 TraceHelper 클래스를 사용합니다. 로그 파일에 쓰는 시점에서 WebRequest를 외부 API로 보내 로그 항목을 Logstash에 전달합니다.동일한 HttpRequestMethod를 호출하면 기존 작업이 완료 될 때까지 대기
Webrequest는 기본적으로 각 Writeline에 대한 json 개체를 보냅니다. 분명히 로깅 목적으로, 순서가 중요하므로 내 질문은, 비록 내가 단지 하나의 POST HttpWebRequest를 호출한다고해도 이것이 수 백 번 발생한다는 것입니다. 문제를 동기화하는 것에 대해 걱정해야합니까? 첫 번째 Writeline에 보낼 기회가 있기 전에 두 번째 Writeline 요청이 HttpWebRequest에 의해 호출되고 처리 될 가능성이 있습니까? 아니면 내가 잘못보고 있니?
참고 : 아래 반 의사 코드
은 내가
Tracehelper.Writeline("foo")
Tracehelper.Writeline("baa");
static Tracehelper(){}
public static void Writeline(string msg)
{
File.WriteToFile(msg);
WebProcessHelper.SendLog(msg);
}
static WebProcessHelper() {}
public static void SendLog(string msg)
{
SendHttpRequest(msg);
}
아래는 "매"가 앞서 "foo는"에 전송하는 가능성이있는이 있다고?
스레딩에 대한 언급이 없었으며, 동일하지 않은 비동기 만있었습니다. 로깅은 항상 일괄 처리되어야하며 특히 원격으로 로깅하는 경우에는 특히 중요합니다. – Tim