我一直试图停止并启动SubscribableChannel
的订阅者,但似乎无法获取用于调用unsubscribe
函数的MessageHandler。
使用MessageHandler的默认自动装配bean提供了一些默认的错误处理程序,而不是我想要取消订阅的通道。
实现这一目标的方法是什么?在运行时调用unsubscribe()
和subscribe()
。
我知道即将发布的暂停/恢复功能,但不能等待它,不能直接使用spring-kafka。因此,尝试将其作为替代方法。
https://github.com/spring-cloud/spring-cloud-stream-binder-kafka/issues/261
答案 0 :(得分:0)
只是取消订阅该频道将无效(即使您可以)。必须暂停kafka消费者暂停交付或停止取消订阅该主题。取消订阅频道将导致容器抛出异常(没有订阅者)。
Spring Cloud Stream目前不支持从您的应用程序管理绑定生命周期;你必须关闭整个应用程序。
答案 1 :(得分:0)
似乎下一步可能:
EXPLAIN SELECT * FROM transactions WHERE user_id=1 FOR UPDATE;
+----+-------------+--------------+------------+------+---------------+------+---------+------+------+----------+-------------+
| id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |
+----+-------------+--------------+------------+------+---------------+------+---------+------+------+----------+-------------+
| 1 | SIMPLE | transactions | NULL | ALL | user_id | NULL | NULL | NULL | 2 | 50.00 | Using where |
+----+-------------+--------------+------------+------+---------------+------+---------+------+------+----------+-------------+
1 row in set, 3 warnings (0.00 sec)