gpt4 book ai didi

java - ecwid-mailchimp 库线程安全吗?

转载 作者:行者123 更新时间:2023-12-01 11:13:39 25 4
gpt4 key购买 nike

我正在使用 library 将我的基于 Spring 的 Web 应用程序与 MailChimp 集成

其 w​​iki 主页上显示的示例代码中的注释如下:

// reuse the same MailChimpClient object whenever possible

根据此建议,我使用 MailChimpClient 对象作为用 @Service 注释的类中的实例变量,但是,这会导致服务器日志中出现异常,这使我认为此类可能不是线程安全的。谁能确认一下吗?

异常堆栈跟踪

java.lang.IllegalStateException: Invalid use of BasicClientConnManager: connection still allocated.
Make sure to release the connection before allocating another one.
at org.apache.http.impl.conn.BasicClientConnectionManager.getConnection(BasicClientConnectionManager.java:162) ~[httpclient-4.2.3.jar:4.2.3]
at org.apache.http.impl.conn.BasicClientConnectionManager$1.getConnection(BasicClientConnectionManager.java:139) ~[httpclient-4.2.3.jar:4.2.3]
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:456) ~[httpclient-4.2.3.jar:4.2.3]
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906) ~[httpclient-4.2.3.jar:4.2.3]
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:805) ~[httpclient-4.2.3.jar:4.2.3]
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:784) ~[httpclient-4.2.3.jar:4.2.3]
at com.ecwid.mailchimp.connection.HttpClientConnectionManager.post(HttpClientConnectionManager.java:63) ~[ecwid-mailchimp-2.0.1.0.jar:na]
at com.ecwid.mailchimp.MailChimpClient.execute(MailChimpClient.java:74) ~[ecwid-mailchimp-2.0.1.0.jar:na]
at com.ecwid.mailchimp.MailChimpClient.execute(MailChimpClient.java:83) ~[ecwid-mailchimp-2.0.1.0.jar:na]
at com.ecwid.mailchimp.MailChimpClient.execute(MailChimpClient.java:95) ~[ecwid-mailchimp-2.0.1.0.jar:na]

最佳答案

简短的回答是:MailChimpClient 的实例不是线程安全的,因此不应在线程之间共享。

长答案:这取决于传递给构造函数的 MailChimpConnectionManager 的实现。如果该实现是线程安全的,那么 MailChimpClient 实例也是线程安全的。但是,现有实现(HttpClientConnectionManager、JavaNetURLConnectionManager)不是线程安全的。

因此,如果您确实需要在线程之间共享 MailChimpClient,您可以编写自己的(线程安全)MailChimpConnectionManager 实现并将其传递给构造函数。

关于java - ecwid-mailchimp 库线程安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32096724/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com