キャメルレストコールを使用して長い操作をトリガーしたい。操作にはかなりの時間がかかるため、要求はタイムアウトになり、クライアント側でエラーメッセージが表示されます。私はこれが起こることを望んでいない。キャメルレストサービスを使用して長い操作をトリガーする
<bean id="activemq" class="org.apache.activemq.camel.component.ActiveMQComponent">
<property name="brokerURL" value="tcp://0.0.0.0:61616" />
<property name="userName" value="admin"/>
<property name="password" value="admin"/>
</bean>
<camelContext xmlns="http://camel.apache.org/schema/blueprint" trace="true">
<route>
<from uri="cxfrs:bean:rsprovider" />
<setBody>
<simple>${header.operationName}</simple>
</setBody>
<to uri="activemq:queue:myqueue"/>
<!-- Send immediate response to client as, the processing will take a while -->
<setBody>
<simple>Received feeder service request to ${header.operationName}. Request will be processed soon.</simple>
</setBody>
</route>
<route>
<from uri="activemq:queue:myqueue"/>
<convertBodyTo type="java.lang.String"/>
<recipientList>
<simple>direct-vm:operation-${body}</simple>
</recipientList>
</route>
</camelContext>
をしかし、キューに追加すると、同期しているようだし、応答が時間通りに受信されない:
だから、私は次のようにキューを使用してこの問題を解決しようとしています。このキューを非同期にするにはどうすればよいですか?私は?jms.useAsyncSend=true
をキューのURLに追加しようとしました。しかし、それはうまくいかなかった。