@Override
    public ExecuteContext before(ExecuteContext context) {
        KafkaConsumerWrapper kafkaConsumerWrapper = KafkaConsumerController.getKafkaConsumerCache()
                .get(context.getObject().hashCode());
        if (kafkaConsumerWrapper == null) {
            return context;
        }
        if (handler != null) {
            handler.doBefore(context);
        } else {
            // Kafka does not allow multiple threads to operate consumers simultaneously, so it is not possible to
            // directly disable consumption when a new configuration is detected through dynamic configuration
            // monitoring. Considering that only when poll is truly called will rebalancing be triggered, a suitable
            // approach is to dynamically configure the thread to update the flag bit, check whether it is necessary
            // to handle the prohibition of consumption before poll, perform subscription addition and subtraction of
            // topics, and then trigger rebalancing by poll.
            if (kafkaConsumerWrapper.getIsConfigChanged().get()) {
                KafkaConsumerController.disableConsumption(kafkaConsumerWrapper,
                        ProhibitionConfigManager.getKafkaProhibitionTopics());
                kafkaConsumerWrapper.getIsConfigChanged().set(false);
            }
        }
        return context;
    }
@Test
    public void testBefore() {
        ExecuteContext context = ExecuteContext.forMemberMethod(mockConsumer, null, null, null, null);
        interceptor.before(context);
        Assert.assertFalse(kafkaConsumerWrapper.getIsConfigChanged().get());
    }