[ 
https://issues.apache.org/jira/browse/BAHIR-85?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16876476#comment-16876476
 ] 

Ton van Bart commented on BAHIR-85:
-----------------------------------

I think calling {{getCommandDescription()}} on every call to {{invoke()}} would 
be wrong, as this would mean that also the Redis command to use could change on 
every call, instead of only the additional key. 
 My suggestion would be to enhance the RedisMapper with an extra method 
{{getAdditionalKey(T data)}} which returns {{Optional<String>}} and give the 
interface a {{default}} implementation which returns {{Optional.empty()}}. This 
way the interface remains backwards compatible with existing implementations of 
it.

In {{RedisSink}} the only change would be to change {{this.additionalKey}} with 
{{optAdditionalKey.orElse(this.additionalKey)}} for the applicable methods; 
this also will give backwards compatibility with any existing code that uses 
this class.

I tested this change on my fork and all the tests still pass.

> Redis Sink Connector should allow update of command without reinstatiation 
> ---------------------------------------------------------------------------
>
>                 Key: BAHIR-85
>                 URL: https://issues.apache.org/jira/browse/BAHIR-85
>             Project: Bahir
>          Issue Type: Improvement
>          Components: Flink Streaming Connectors
>            Reporter: Atharva Inamdar
>            Priority: Major
>
> ref: FLINK-5478
> `getCommandDescription()` gets called when RedisSink is instantiated. This 
> happens only once and thus doesn't allow the command to be updated during run 
> time.
> Use Case:
> As a dev I want to store some data by day. So each key will have some date 
> specified. this will change over course of time. for example: 
> `counts_for_1484265600000` for 2017-01-13. This is not limited to any 
> particular command.
> connector: 
> https://github.com/apache/bahir-flink/blob/master/flink-connector-redis/src/main/java/org/apache/flink/streaming/connectors/redis/RedisSink.java#L114
> I wish `getCommandDescription()` could be called in `invoke()` so that the 
> key can be updated without having to restart.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to