【发布时间】:2016-09-13 14:26:38
【问题描述】:
我有一个工作代理程序,它每 60 秒运行一次,检查处理表是否有新工作,如果有新工作可用,则每 60 秒检查一次。在处理过程中,代理使用静态 TraceHelper 类进行日志记录。在写入日志文件时,我还将 WebRequest 发送到外部 API 以将日志条目发送到 Logstash。
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”之前发送“baa”?
【问题讨论】:
标签: c# asynchronous httpwebrequest