INT-3198: Add 'recovery-interval' for redis-q-c-a

JIRA: https://jira.springsource.org/browse/INT-3198

* Expose `RedisQueueMessageDrivenEndpoint.recoveryInterval` to Namespace support
* Add parser's tests
* Rename parser test class
* Polishing for concurrency of`RedisQueueMessageDrivenEndpointTests#testInt3196Recovery` test
* Add documentation for 'recovery-interval' and Redis Events implementation

Doc Polishing

Add more delay because of unsolvable race condition in the Redis Subscription - see DATAREDIS-242
This commit is contained in:
Artem Bilan
2013-11-06 11:52:31 +02:00
committed by Gary Russell
parent f169555224
commit 93bcfdbc55
7 changed files with 61 additions and 5 deletions

View File

@@ -205,6 +205,7 @@ rt.setConnectionFactory(redisConnectionFactory);]]></programlisting>
error-channel="" ]]><co id="redis-m-d-c-a-errorChannel"/><![CDATA[
serializer="" ]]><co id="redis-m-d-c-a-serializer"/><![CDATA[
receive-timeout="" ]]><co id="redis-m-d-c-a-receiveTimeout"/><![CDATA[
recovery-interval="" ]]><co id="redis-m-d-c-a-recoveryInterval"/><![CDATA[
expect-message="" ]]><co id="redis-m-d-c-a-expectMessage"/><![CDATA[
task-executor=""/> ]]><co id="redis-m-d-c-a-task-executor"/>
</programlisting>
@@ -247,7 +248,9 @@ rt.setConnectionFactory(redisConnectionFactory);]]></programlisting>
<callout arearefs="redis-m-d-c-a-errorChannel">
<para>
The <interfacename>MessageChannel</interfacename> to which to send <interfacename>ErrorMessage</interfacename>s with
<interfacename>Exception</interfacename>s from the listening task of the Endpoint.
<interfacename>Exception</interfacename>s from the listening task of the Endpoint. By default
the underlying <classname>MessagePublishingErrorHandler</classname> uses the
default <code>errorChannel</code> from the application context.
</para>
</callout>
<callout arearefs="redis-m-d-c-a-serializer">
@@ -262,6 +265,12 @@ rt.setConnectionFactory(redisConnectionFactory);]]></programlisting>
The timeout in milliseconds for 'right pop' operation to wait for a Redis message from the queue. Default is 1 second.
</para>
</callout>
<callout arearefs="redis-m-d-c-a-recoveryInterval">
<para>
The time in milliseconds for which the listener task should sleep after exceptions on the 'right pop' operation,
before restarting the listener task.
</para>
</callout>
<callout arearefs="redis-m-d-c-a-expectMessage">
<para>
Specify if this Endpoint expects data from the Redis queue to contain entire <interfacename>Message</interfacename>s.
@@ -344,6 +353,22 @@ rt.setConnectionFactory(redisConnectionFactory);]]></programlisting>
</calloutlist>
</para>
</section>
<section id="redis-application-events">
<title>Redis Application Events</title>
<para>
Since <emphasis>Spring Integration 3.0</emphasis>, the Redis module provides an implementation
of <classname>IntegrationEvent</classname> - which, in turn, is a
<interfacename>org.springframework.context.ApplicationEvent</interfacename>. The <classname>RedisExceptionEvent</classname>
encapsulates an <classname>Exception</classname>s from Redis operations (with the Endpoint being the <code>source</code>
of the event). For example, the <code>&lt;int-redis:queue-inbound-channel-adapter/&gt;</code>
emits those events after catching <classname>Exception</classname>s from the <code>BoundListOperations.rightPop</code>
operation.
The exception may be any generic <classname>org.springframework.data.redis.RedisSystemException</classname> or
a <classname>org.springframework.data.redis.RedisConnectionFailureException</classname>.
Handling these events using an <code>&lt;int-event:inbound-channel-adapter/&gt;</code> can be useful to determine
problems with background Redis tasks and to take administrative actions.
</para>
</section>
</section>
<section id="redis-message-store">