bgiles
bgiles

Reputation: 1240

Cometd: specifying max threads in java client

0

The cometd documentation says that the "max threads" property can be set on both client and server... but doesn't actually provide an example. I know this can't be the actual property name since it contains a space, and when I search for 'maxThreads' I only see a server property which is clearly a different property since it has a different default value.

When I check the javadoc I can see that there's an AbstractService has a constructor argument for 'maxThreads' but I don't see the same with the BayeuxClient.

What am I missing?

If it matters we're currently using 5.0.9 but should move to 6.x once our sibling projects bump their version of jetty.

(Previously posted on salesforce.stackexchange.com without luck)

Upvotes: 0

Views: 144

Answers (1)

sbordet
sbordet

Reputation: 18637

For HTTP:

int maxThreads = 256;

// Create and configure the HTTP client.
HttpClient httpClient = new HttpClient(new HttpClientTransportOverHTTP());
httpClient.setExecutor(new QueuedThreadPool(maxThreads));
httpClient.start();

// Create the BayeuxClient with the CometD HTTP transport.
BayeuxClient bayeuxClient = new BayeuxClient(cometdURL, new JettyHttpClientTransport(null, httpClient));

Similarly, all properties related to HTTP (and not to CometD) are configured in HttpClient, such as HttpClient.maxConnectionsPerDestination, etc.

For WebSocket it is similar; if you use Jetty's WebSocketClient, you pass an HttpClient (it may be shared with the HTTP transport) to WebSocketClient's constructor, and configure HTTP properties in HttpClient and WebSocket properties in WebSocketClient.

Upvotes: 2

Related Questions