小编Viv*_*lan的帖子

Rails应用程序中的持久TCP连接

我有一个在服务器上运行的第三方应用程序,它对客户端进行身份验证并回复.

我的问题在于我到达rails应用程序的每一个请求都需要建立TCP连接并获取数据.是否可以建立持久连接,以便减少建立连接的开销.

ruby sockets ruby-on-rails

5
推荐指数
1
解决办法
1454
查看次数

Apache camel即使在配置组件选项后,也会使用restlet连接池超时

我有一个骆驼Java DSL路由调用restlet端点.当我手动敲击时,路线没有任何问题.但是,当我尝试通过代码抽取大量请求时,我得到" Timeout等待来自池的连接 "

以下是相同的堆叠种族:

2016-01-29 14:09:38.650  WARN 20256 --- [pool-3-thread-2] org.restlet                              : An error occurred during the communication with the remote HTTP server.org.apache.http.conn.ConnectionPoolTimeoutException: Timeout waiting for connection from pool
at org.apache.http.impl.conn.tsccm.ConnPoolByRoute.getEntryBlocking(ConnPoolByRoute.java:412)
at org.apache.http.impl.conn.tsccm.ConnPoolByRoute$1.getPoolEntry(ConnPoolByRoute.java:298)
at org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager$1.getConnection(ThreadSafeClientConnManager.java:238)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:423)
at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:863)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:106)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:57)
at org.restlet.ext.httpclient.internal.HttpMethodCall.sendRequest(HttpMethodCall.java:339)
at org.restlet.engine.adapter.ClientAdapter.commit(ClientAdapter.java:105)
at org.restlet.engine.adapter.HttpClientHelper.handle(HttpClientHelper.java:119)
at org.restlet.Client.handle(Client.java:153)
at org.restlet.Restlet.handle(Restlet.java:275)
at org.apache.camel.component.restlet.RestletProducer.process(RestletProducer.java:79)
at org.apache.camel.component.restlet.RestletProducer.process(RestletProducer.java:98)
at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:141)
at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)
at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:460)
at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:190)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:121)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:83)
at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:460)
at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:190)
at org.apache.camel.processor.MulticastProcessor.doProcessSequential(MulticastProcessor.java:668)
at org.apache.camel.processor.MulticastProcessor.doProcessSequential(MulticastProcessor.java:596) …
Run Code Online (Sandbox Code Playgroud)

java restlet apache-camel

5
推荐指数
1
解决办法
961
查看次数

FCM(Firebase云消息传递)发送到多个设备组

从Firebase文档和StackOverflow问题,我了解到我们可以通过主题消息设备组消息将推送通知发送到多个设备.但我想知道是否有办法在单个FCM发送请求中触发推送通知到多个设备组?

基本上,我不想为同一个推送通知消息调用多个请求.我有多个设备组的原因是因为数字成员(即)上有一个上限,而不是一个notification_key.

我不想将消息发布到主题的原因基本上是由于我的要求限制.我的要求是"我在后端生成了一些警报消息,同样只需要向少数用户发送(用户可以登录多个设备),我可以预见的主题是我买不起的问题主题中的动态属性.

如果有办法实现主题,请提出您的建议.

android ios firebase firebase-cloud-messaging

1
推荐指数
2
解决办法
4752
查看次数

如何列出apache camel中的所有jms头属性?

我正在尝试在apache-camel路由中读取jms头.以下是我正在阅读正文和标题的路线.

String endPointTopic = "activemq:topic:geoLoc";
String endPointTopicOut = endPointTopic + "_outbox";    
from(endPointTopic)                 
    .log("Message from Topic is ${body} & header is ${header.Action}")
    .to(endPointTopicOut);
Run Code Online (Sandbox Code Playgroud)

基本上从日志中我可以看到以下内容,这意味着我能够读取正文而不是标题中的id.

来自Topic的消息是GeoLocationInfoDTO {id = 2,geoLocationUUId ='null',geoLocationName ='null',geoLocationDesc ='null',geoLocationPolygon ='null',geoLocationCenterLatitude ='null',geoLocationCenterLongitude ='null'}&header is

以下是我通过jms模板将消息发布到activeMQ的代码.

private MessageHeaders getMessageHeaders(HttpMethod action) {
    log.debug("DomainPublisher : getMessageHeaders");

    Map <String, Object> headerMap = new HashMap<>();
    headerMap.put("Action", action);

    return new MessageHeaders(headerMap);
}

public void publish(BaseDTO dto, HttpMethod action) {
    log.debug("DomainPublisher : type is : {} : ", dto.getClass().getName());
    getJmsMessagingTemplate().convertAndSend(topicMap.get(dto.getClass().getName()), dto, getMessageHeaders(action));
}
Run Code Online (Sandbox Code Playgroud)

注意:我还尝试将标头ID记录为$ {header.id}而不是$ {header.Action},但没有任何内容被打印出来.

我还想知道jms消息可用的所有头文件.

activemq-classic jms apache-camel

0
推荐指数
1
解决办法
3024
查看次数