redis
  • spring-xd
  • 2017-06-30 1 views 1 likes 
    1

    Im Versuch, Redis mit spezifischer Lage ist, die Sammlung type = MAPFrühlings-xd Redis Spüle mit Sammlungstyp MAP

    stream create tTEST_GF_SINK --definition "trigger --initialDelay=0 --fixedDelay=1 --timeUnit=MINUTES --payload= 'new Date().toString()' --outputType=application/json | 
        transform --expression='new java.util.Date().toString()'| 
        redis --collectionType=MAP --key=1" --deploy 
    

    sinken zu implementieren Für alle anderen Sammlungstypen wie LIST, SET, ZSet Stromes in diesen zu schreiben Redis sinkt, aber wenn ich MAP als Sammlertyp verwende, wird der folgende Fehler auf redis_mapkey ausgegeben.

    2017-06-30T16: 47: 59-0400 1.3.1.RELEASE ERROR task-Scheduler-3 handler.LoggingHandler - org.springframework.messaging.MessageHandlingException: Fehler beim Laden der Nachricht Daten in Redis Sammlung; verschachtelte Ausnahme ist org.springframework.expression.spsel.SpelEvaluationException: EL1008E: (Pos 8): Eigenschaft oder Feld 'redis_mapKey' kann nicht auf Objekt vom Typ 'org.springframework.messaging.MessageHeaders' gefunden werden - vielleicht nicht öffentlich? bei org.springframework.integration.redis.outbound.RedisStoreWritingMessageHandler.handleMessageInternal (RedisStoreWritingMessageHandler.java:278) bei org.springframework.integration.handler.AbstractMessageHandler.handleMessage (AbstractMessageHandler.java:127) bei org.springframework.integration .dispatcher.AbstractDispatcher.tryOptimizedDispatch (AbstractDispatcher.java:116) bei org.springframework.integration.dispatcher.UnicastingDispatcher.doDispatch (UnicastingDispatcher.java:147) bei org.springframework.integration.dispatcher.UnicastingDispatcher.dispatch (UnicastingDispatcher.java : 120) unter org.springframework.integration.channel.AbstractSubscribableChannel.doSend (AbstractSubscribableChannel.java:77) unter org.springframework.integration.ch annel.AbstractMessageChannel.send (AbstractMessageChannel.java:442) bei org.springframework.integration.channel.AbstractMessageChannel.send (AbstractMessageChannel.java:392) bei org.springframework.messaging.core.GenericMessagingTemplate.doSend (GenericMessagingTemplate.java: 115) bei org.springframework.messaging.core.GenericMessagingTemplate.doSend (GenericMessagingTemplate.java:45) bei org.springframework.messaging.core.AbstractMessageSendingTemplate.send (AbstractMessageSendingTemplate.java:105) bei org.springframework.integration. handler.AbstractMessageProducingHandler.sendOutput (AbstractMessageProducingHandler.java:231) bei org.springframework.integration.handler.AbstractMessageProducingHandler.produceOutput (AbstractMessageProducingHandler.java:154) bei org.springfr amework.integration.handler.AbstractMessageProducingHandler.sendOutputs (AbstractMessageProducingHandler.java:102) bei org.springframework.integration.handler.AbstractReplyProducingMessageHandler.handleMessageInternal (AbstractReplyProducingMessageHandler.java:105) bei org.springframework.integration.handler.AbstractMessageHandler.handleMessage (AbstractMessageHandler.java:127) bei org.springframework.integration.dispatcher.AbstractDispatcher.tryOptimizedDispatch (AbstractDispatcher.java:116) bei org.springframework.integration.dispatcher.UnicastingDispatcher.doDispatch (UnicastingDispatcher.java:147) bei org. springframework.integration.dispatcher.UnicastingDispatcher.dispatch (UnicastingDispatcher.java:120) bei org.springframework.integration.channel.AbstractSubscribableChannel.doSend (AbstractSubscriba bleChannel.java:77) bei org.springframework.integration.channel.AbstractMessageChannel.send (AbstractMessageChannel.java:442) bei org.springframework.integration.channel.AbstractMessageChannel.send (AbstractMessageChannel.java:392) bei org. springframework.messaging.core.GenericMessagingTemplate.doSend (GenericMessagingTemplate.java:115) bei org.springframework.messaging.core.GenericMessagingTemplate.doSend (GenericMessagingTemplate.java:45) bei org.springframework.messaging.core.AbstractMessageSendingTemplate.send (AbstractMessageSendingTemplate.Java: 105) bei org.springframework.integration.handler.AbstractMessageProducingHandler.sendOutput (AbstractMessageProducingHandler.java:231) bei org.springframework.integration.handler.AbstractMessageProducingHandler.produceOutput (AbstractMessageProducingHandler.java:154) bei org.springframework. integration.handler.AbstractMessageProducingHandler.sendOutputs (AbstractMessageProducingHandler.java:102) bei org.springframework.integration.handler.AbstractReplyProducingMessageHandler.handleMessageInternal (AbstractReplyProducingMessageHandler.java:105) bei org.springframework.integration.handler.AbstractMessageHandler.handleMessage (AbstractMessageHandler. java: 127) bei org.springframework.integration.dispatcher.AbstractDispatcher.tryOptimizedDispatch (AbstractDispatcher.java:116) bei org.springframework.integration.dispatcher.UnicastingDispatcher.doDispatch (UnicastingDispatcher.java:147) bei org.springframework.integration.dispatcher.UnicastingDispatcher.dispatch (UnicastingDispatcher.java:120) bei org.springframework.integration.channel. AbstractSubscribableChannel.doSend (AbstractSubscribableChannel.java:77) bei org.springframework.integration.channel.AbstractMessageChannel.send (AbstractMessageChannel.java:442) bei org.springframework.integration.channel.AbstractMessageChannel.send (AbstractMessageChannel.java:392) bei org.springframework.messaging.core.GenericMessagingTemplate.doSend (GenericMessagingTemplate.java:115) bei org.springframework.messaging.core.GenericMessagingTemplate.doSend (GenericMessagingTemplate.java:45) bei org.springfr amework.messaging.core.AbstractMessageSendingTemplate.send (AbstractMessageSendingTemplate.java:105) bei org.springframework.integration.handler.AbstractMessageProducingHandler.sendOutput (AbstractMessageProducingHandler.java:231) bei org.springframework.integration.handler.AbstractMessageProducingHandler.produceOutput (AbstractMessageProducingHandler.java:154) bei org.springframework.integration.handler.AbstractMessageProducingHandler.sendOutputs (AbstractMessageProducingHandler.java:102) bei org.springframework.integration.handler.AbstractReplyProducingMessageHandler.handleMessageInternal (AbstractReplyProducingMessageHandler.java:105) bei org. springframework.integration.handler.AbstractMessageHandler.handleMessage (AbstractMessageHandler.java:127) bei org.springframework.integration.dispatcher.Abstra ctDispatcher.tryOptimizedDispatch (AbstractDispatcher.java:116) bei org.springframework.integration.dispatcher.UnicastingDispatcher.doDispatch (UnicastingDispatcher.java:147) bei org.springframework.integration.dispatcher.UnicastingDispatcher.dispatch (UnicastingDispatcher.java:120) bei org.springframework.integration.channel.AbstractSubscribableChannel.doSend (AbstractSubscribableChannel.java:77) bei org.springframework.integration.channel.AbstractMessageChannel.send (AbstractMessageChannel.java:442) bei org.springframework.integration.channel. AbstractMessageChannel.send (AbstractMessageChannel.java:392) bei org.springframework.messaging.core.GenericMessagingTemplate.doSend (GenericMessagingTemplate.java:115) bei org.springframework.messaging.core.GenericMessagingTemplate .doSend (GenericMessagingTemplate.java:45) bei org.springframework.messaging.core.AbstractMessageSendingTemplate.send (AbstractMessageSendingTemplate.java:105) bei org.springframework.integration.handler.AbstractMessageProducingHandler.sendOutput (AbstractMessageProducingHandler.java:231) bei org.springframework.integration.handler.AbstractMessageProducingHandler.produceOutput (AbstractMessageProducingHandler.java:154) bei org.springframework.integration.handler.AbstractMessageProducingHandler.sendOutputs (AbstractMessageProducingHandler.java:102) bei org.springframework.integration.handler.AbstractReplyProducingMessageHandler .handleMessageInternal (AbstractReplyProducingMessageHandler.java:105) bei org.springframework.integration.handler.AbstractMessageHandler.handleMessage (AbstractMessageHandler.Java: 127) bei org.springframework.integration.dispatcher.AbstractDispatcher.tryOptimizedDispatch (AbstractDispatcher.java:116) bei org.springframework.integration.dispatcher.UnicastingDispatcher.doDispatch (UnicastingDispatcher.java:147) bei org.springframework. integration.dispatcher.UnicastingDispatcher.dispatch (UnicastingDispatcher.java:120) bei org.springframework.integration.channel.AbstractSubscribableChannel.doSend (AbstractSubscribableChannel.java:77) bei org.springframework.integration.channel.AbstractMessageChannel.send (Abstract Message Channel. Java: 442) bei org.springframework.integration.channel.AbstractMessageChannel.send (AbstractMessageChannel.java:392) bei org.springframework.messaging.core.GenericMessagingTemplate.doSend (GenericMessagingTemplate.java:115) bei org.springframework.messaging.core.GenericMessagingTemplate.doSend (GenericMessagingTemplate.java:45) bei org.springframework.messaging.core.AbstractMessageSendingTemplate.send (AbstractMessageSendingTemplate.java:105) bei org.springframework.integration.handler. AbstractMessageProducingHandler.sendOutput (AbstractMessageProducingHandler.java:231) bei org.springframework.integration.handler.AbstractMessageProducingHandler.produceOutput (AbstractMessageProducingHandler.java:154) bei org.springframework.integration.handler.AbstractMessageProducingHandler.sendOutputs (AbstractMessageProducingHandler.java:102) bei org.springframework.integration.handler.AbstractReplyProducingMessageHandler.handleMessageInternal (AbstractReplyProducingMessageHandler.java:105) bei org.spring framework.integration.handler.AbstractMessageHandler.handleMessage (AbstractMessageHandler.java:127) bei org.springframework.integration.dispatcher.AbstractDispatcher.tryOptimizedDispatch (AbstractDispatcher.java:116) bei org.springframework.integration.dispatcher.UnicastingDispatcher.doDispatch (UnicastingDispatcher.java:147) bei org.springframework.integration.dispatcher.UnicastingDispatcher.dispatch (UnicastingDispatcher.java:120) bei org.springframework.integration.channel.AbstractSubscribableChannel.doSend (AbstractSubscribableChannel.java:77) bei org. springframework.integration.channel.AbstractMessageChannel.send (AbstractMessageChannel.java:442) bei org.springframework.integration.channel.AbstractMessageChannel.send (AbstractMessageChannel.java:392) bei org.springfr amework.messaging.core.GenericMessagingTemplate.doSend (GenericMessagingTemplate.java:115) bei org.springframework.messaging.core.GenericMessagingTemplate.doSend (GenericMessagingTemplate.java:45) bei org.springframework.messaging.core.AbstractMessageSendingTemplate.send (AbstractMessageSendingTemplate.java:105) bei org.springframework.integration.endpoint.SourcePollingChannelAdapter.handleMessage (SourcePollingChannelAdapter.java:161) bei org.springframework.integration.endpoint.AbstractPollingEndpoint.doPoll (AbstractPollingEndpoint.java:251) bei org. springframework.integration.endpoint.AbstractPollingEndpoint.access $ 000 (AbstractPollingEndpoint.java:57) bei org.springframework.integration.endpoint.AbstractPollingEndpoint $ 1.call (AbstractPollingEndpoint.java:176) bei org .springframework.integration.endpoint.AbstractPollingEndpoint $ 1.call (AbstractPollingEndpoint.java:173) bei org.springframework.integration.endpoint.AbstractPollingEndpoint $ Bollard $ 1.run (AbstractPollingEndpoint.java:330) bei org.springframework.integration.util .ErrorHandlingTaskExecutor $ 1.run (ErrorHandlingTaskExecutor.java:55) bei org.springframework.core.task.SyncTaskExecutor.execute (SyncTaskExecutor.java:50) bei org.springframework.integration.util.ErrorHandlingTaskExecutor.execute (ErrorHandlingTaskExecutor.java: 51) bei org.springframework.integration.endpoint.AbstractPollingEndpoint $ Poller.run (AbstractPollingEndpoint.java:324) bei org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run (DelegatingErrorHandlingRunnable.java:54) bei org.springframework.scheduling.concurrent.ResplaningRunnable.run (ResterminingRunnable.java:81) bei java.util.concurrent.Executors $ RunnableAdapter.call (Executors.java:511) bei java.util.concurrent.FutureTask.run (FutureTask. java: 266) bei java.util.concurrent.ScheduledThreadPoolExecutor $ ScheduledFutureTask.access 201 $ (ScheduledThreadPoolExecutor.java:180) bei java.util.concurrent.ScheduledThreadPoolExecutor $ ScheduledFutureTask.run (ScheduledThreadPoolExecutor.java:293) bei java.util .concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1142) bei java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:617) bei java.lang.Thread.run (Thread.java:745) Verursacht von: org.springframework.expression.spsel.SpelEvaluationExcept ion: EL1008E: (Pos 8): Eigenschaft oder Feld 'redis_mapKey' kann nicht auf Objekt des Typs 'org.springframework.messaging.MessageHeaders' gefunden werden - vielleicht nicht öffentlich? bei org.springframework.expression.spel.ast.PropertyOrFieldReference.readProperty (PropertyOrFieldReference.java:224) bei org.springframework.expression.spel.ast.PropertyOrFieldReference.getValueInternal (PropertyOrFieldReference.java:94) bei org.springframework. expression.spel.ast.PropertyOrFieldReference.access $ 000 (PropertyOrFieldReference.java:46) unter org.springframework.expression.spel.ast.PropertyOrFieldReference $ AccessorLValue.getValue (PropertyOrFieldReference.java:374) unter org.springframework.expression.spel .ast.CompoundExpression.getValueInternal (CompoundExpression.java:88) unter org.springframework.expression.spel.ast.SpelNodeImpl.getValue (SpelNodeImpl.java:120) unter org.springframework.expression.spel.standard.SpleExpression.getValue (SpelExpression.java:267) bei org.springframework.integration.redis.outbound.RedisStoreWritingMessageHandler.determineMapKey (RedisStoreWritingMessageHandler.java:415) bei org.springframework.integration.redis.outbound.RedisStoreWritingMessageHandler.writeToMap (RedisStoreWritingMessageHandler.java:379) bei org.springframework. integration.redis.outbound.RedisStoreWritingMessageHandler.handleMessageInternal (RedisStoreWritingMessageHandler.java:271) ... 99 mehr

    Kann jemand mir helfen

    Antwort

    0

    mit einer Karte Sammlung, gibt es zwei Schlüssel beteiligt; der Schlüssel, unter dem die Karte gespeichert ist, und der Schlüssel, in dem das Element in der Karte gespeichert ist.

    Das XD-Modul stellt den MapKey nicht als Eigenschaft zur Verfügung. Sie können entweder einen Header-Anreicher Upstream hinzufügen, um den Header redis_mapKey festzulegen, oder Sie können die Konfiguration des Moduls bearbeiten, um die map-key-expression hinzuzufügen.

    Zum Beispiel Bearbeitung xd/modules/sink/redis/config/redis.xml wie so ...

    <beans:beans profile="use-store-expression"> 
        <redis:store-outbound-channel-adapter 
         map-key-expression="payload.substring(17)" 
         key-expression="${keyExpression}" collection-type="${collectionType}" 
         channel="input" connection-factory="redisConnectionFactory" /> 
    </beans:beans> 
    

    mit ...

    xd:>stream create foo --definition "time | redis --collectionType=MAP --key='foo'" --deploy 
    

    Ergebnisse in ...

    127.0.0.1:6379> hgetall "foo" 
    1) "52" 
    2) "2017-07-01 08:43:52" 
    3) "53" 
    4) "2017-07-01 08:43:53" 
    5) "54" 
    6) "2017-07-01 08:43:54" 
    7) "55" 
    8) "2017-07-01 08:43:55" 
    ... 
    
    0

    @Gary. Ich habe Ihren Vorschlag für Header-Anreicherung versucht, redis_mapkey hinzuzufügen. Es funktioniert gut.

    Strom erzeugen tTEST_GF_SINK --definition „trigger --initialDelay = 0 = 1 --fixedDelay --timeUnit = Minuten --payload = 'new Date(). ToString()' --outputType = application/json | header-anreicherer --headers = {\ "redis_mapKey \": \ "payloadsubstring (17) \"} | transform --ausdruck = 'new java.util.Date().toString() '| redis --collectionType = MAP --key = 1" --deploy

    127.0.0.1:6379> hgetall 1

    1) "ng()"

    2) „Sa 01 Jul 23:29:16 EDT 2017 "

    Verwandte Themen