0

我有一个用例,我在使用twitter HBC的多线程环境中使用 twitter 过滤器流。

我收到关键字以根据我收到的每个请求从用户那里跟踪,处理它们并将它们保存到数据库中。例子

  • 请求 1:跟踪关键字 [apple, google]
  • 请求 2:跟踪关键字 [yahoo, microsoft]

我目前正在做的是,为每个请求打开一个新线程并处理它们。

我正在为下面的每个端品脱建立连接(我正在关注这个官方 HBC 示例

endpoint.trackTerms(Lists.newArrayList("twitterapi", "#yolo"));

    Authentication auth = new OAuth1(consumerKey, consumerSecret, token, secret);

    // Create a new BasicClient. By default gzip is enabled.
    Client client = new ClientBuilder()
            .hosts(Constants.STREAM_HOST)
            .endpoint(endpoint)
            .authentication(auth)
            .processor(new StringDelimitedProcessor(queue))
            .build();

    // Establish a connection
    client.connect();


The problem that I am facing is twitter gives me warning of having more that one connection. 

但是根据上面的代码和我的用例,我必须为我收到的每个请求创建一个新的 Client对象实例,因为我的端点(trackTerms)对于我收到的每个请求都不同

为我的用例(多线程系统)连接到 twitter 的正确方法是什么to many connections warningrate limit warnings

来自推特的当前警告:

2017-02-01 13:47:33 INFO TwitterStreamImpl:62 - 420:Returned by the Search and Trends API when you are being rate limited (https://dev.twitter.com/docs/rate-limiting).
Returned by the Streaming API:
Too many login attempts in a short period of time.
Running too many copies of the same application authenticating with the same account name.
Exceeded connection limit for user

谢谢。

4

0 回答 0