Comments (2)
That's not correct.
The PubSubInboundChannelAdapter
is an start of the integration flow, which is based on the message channel communication. So, letting end-user to inject his own callback eliminates the PubSubInboundChannelAdapter
purpose.
The current solution is absolutely right where we receive a PubSub message, convert it into the SI Message and send to the configured channel. That is how SI works.
What you suggest makes sense outside of the SI. That is what we call MessageListenerContainer
. The good sample of that is Spring Kafka: https://github.com/spring-projects/spring-kafka/tree/master/spring-kafka/src/main/java/org/springframework/kafka/listener
and the Inbound Channel Adapter for it: https://github.com/spring-projects/spring-integration-kafka/blob/master/src/main/java/org/springframework/integration/kafka/inbound/KafkaMessageDrivenChannelAdapter.java
I find this PubSub Subscriber
as pretty straightforward API that we even don't need that MessageListenerContainer
(at least for now).
The good sample for similar approach is MqttPahoMessageDrivenChannelAdapter
: https://github.com/spring-projects/spring-integration/blob/master/spring-integration-mqtt/src/main/java/org/springframework/integration/mqtt/inbound/MqttPahoMessageDrivenChannelAdapter.java. Where we don't have any containers and just subscribe to the topics (this.client.subscribe(topics, grantedQos);
) and register ourselves as callback - this.client.setCallback(this);
.
from spring-cloud-gcp.
That's great! Yes, that makes sense.
I filed this issue after a conversation with @viniciusccarvalho yesterday, but I might have failed to understand what was actually being talked.
We spoke about this in the scope of the auto/manual PubsubMessage ack/nack. However, it seems like this isn't a good way of getting there.
from spring-cloud-gcp.
Related Issues (20)
- Spanner Lazy Loading seems not to be working HOT 1
- SpannerOperations.executeDmlStatement doesn't run Partitioned-DML when it's not performed in transaction. HOT 4
- java.net.MalformedURLException: unknown protocol: gs HOT 7
- PubSubBinderConfiguration is not disabled when PubSub is disabled HOT 1
- Unknown Function Lower or LOWER HOT 2
- Could not find an appender named [STACKDRIVER] HOT 2
- spring-cloud-gcp-starter-sql-postgresql - Connection issue HOT 1
- datastore: BeforeDeleteEvent is not fired if deletion was performed inside of performTransaction method HOT 1
- Traces not propagated to Cloud Trace, StackdriverTraceAutoConfiguration fails with timeout HOT 6
- Is there an equivalent of resilience4j for node.js HOT 1
- Backport SpannerOptions customizer HOT 2
- Could not autowire. No beans of 'PubSubPersonGateway' type found issue in Pub Sub Sample project HOT 4
- Huge amount of ScheduledFutureTask in memory in case pubsub.googleapis.com isn't available HOT 7
- Spring Boot the property spring.jpa.show-sql doesn't work with Datastore HOT 1
- Health Indicator for Cloud Spanner HOT 2
- pubSubHeathContributor timeout exception on start up. HOT 1
- Google Cloud Storage encoded-key problem HOT 3
- X-B3-TraceId different from x-cloud-trace-context HOT 2
- spring-cloud-gcp-starter-pubsub fail on enforcer plugin HOT 1
- springcloud-gcp-starter-pubsub can's sbscribe topic HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from spring-cloud-gcp.