在 long 运行 worker 服务中创建 HttpClient 对象的建议方法是什么
What is the suggested way to create HttpClient object in long running worker service
我正在研究 worker service
,它使用 HttpClient
为 getting/posting 数据提供单独的 class DAL
。 DAL
有几个方法,在每个方法中 HttpClient
对象有不同的 param/values.
一种方法是在 DAL
的每个方法中创建对象。
其他方法是在 DAL
的构造函数中创建,但在方法之间切换时不确定 HttpClient
对象如何与已分配的值重叠。
求推荐。
in every method HttpClient object has different param/values.
不,不是。它可能有不同的默认值,但是可以在 REQUEST 中设置 REQUEST 的值。
One way is to create object in every method of DAL.
也称为:忽略文档中的所有内容以及团队发布的关于不这样做的内容。
Other way is creating in constructor of DAL
和以前一样。
制作一个被反复使用的(!)。不仅来自 DAL。生成一个 HttpClient 是昂贵的并且它们是可重用的——或者更好的是,查看所有文档并(重复)从 HttpClientFactory 中获取一个,这将抵消创建一个的开销(因为它实际上不是 HttpClient htat 是昂贵的,而是内部消息传递的创建堆栈)。
然后在消息中设置所有参数等。
我正在研究 worker service
,它使用 HttpClient
为 getting/posting 数据提供单独的 class DAL
。 DAL
有几个方法,在每个方法中 HttpClient
对象有不同的 param/values.
一种方法是在 DAL
的每个方法中创建对象。
其他方法是在 DAL
的构造函数中创建,但在方法之间切换时不确定 HttpClient
对象如何与已分配的值重叠。
求推荐。
in every method HttpClient object has different param/values.
不,不是。它可能有不同的默认值,但是可以在 REQUEST 中设置 REQUEST 的值。
One way is to create object in every method of DAL.
也称为:忽略文档中的所有内容以及团队发布的关于不这样做的内容。
Other way is creating in constructor of DAL
和以前一样。
制作一个被反复使用的(!)。不仅来自 DAL。生成一个 HttpClient 是昂贵的并且它们是可重用的——或者更好的是,查看所有文档并(重复)从 HttpClientFactory 中获取一个,这将抵消创建一个的开销(因为它实际上不是 HttpClient htat 是昂贵的,而是内部消息传递的创建堆栈)。
然后在消息中设置所有参数等。