延迟消息比设定时间多延后30秒

发送延迟消息或定时消息,消费者会多延迟30才消费到,是什么参数控制的?
生产者代码如下:

ClientBuilder clientBuilder = PulsarClient.builder();
        clientBuilder.serviceUrl("pulsar://192.168.10.211:6650");
        PulsarClient client = clientBuilder
                .build();
        //2. 通过客户端创建生产者的对象
        Producer<byte[]> producer = client.newProducer()
                .topic("persistent://testTenant/1001/my-topic")
                .create();
        //3. 发送消息:
        producer.newMessage().value("你好 Puslar...".getBytes(StandardCharsets.UTF_8))
                .deliverAt(1670079609000L) // 2022-12-03 23:00:09
                .send();
        //4. 释放资源
        producer.close();
        client.close();

消费者代码如下:

//1. 获取pulsar的客户端对象
        ClientBuilder clientBuilder = PulsarClient.builder();
        clientBuilder.serviceUrl("pulsar://192.168.10.211:6650");
        PulsarClient client = clientBuilder.build();
        //2. 通过客户端创建生产者的对象
        Consumer consumer = client.newConsumer()
                .topic("persistent://testTenant/1001/my-topic")
                .subscriptionName(String.format("%s-sub", "testTenant")).subscriptionType(SubscriptionType.Shared)
                .autoUpdatePartitions(Boolean.FALSE)
                .subscribe();
        do {
            try {
                Message message = consumer.receive();
                Long s = System.currentTimeMillis();
                System.out.println("接收时间:"+ s);
                System.out.println("msg: " +new String(message.getData()));
                System.out.println(message.getTopicName());
                consumer.acknowledge(message);
            } catch (Throwable t) {
//                logger.error("error:", t);
            }
        } while (true);

2022-12-03 22:58:00 时刻 生产者程序运行后,消费者控制台后续输出如下

接收时间:1670079639961   
msg: 你好 Puslar... 
persistent://testTenant/1001/my-topic

1670079639961 即2022-12-03 23:00:39 比预设的时间(2022-12-03 23:00:09)多延迟了30秒

不知道小伙伴有没有碰到这种情况?能否帮忙解答下

可以检查一下有没有设置

# Control the tick time for when retrying on delayed delivery,
# affecting the accuracy of the delivery time compared to the scheduled time.
# Note that this time is used to configure the HashedWheelTimer's tick time for the
# InMemoryDelayedDeliveryTrackerFactory (the default DelayedDeliverTrackerFactory).
# Default is 1 second.
delayedDeliveryTickTimeMillis=30000

如果没有的话可以检查是不是在消费的过程中 broker 有重启或者从 bookies 读取的时候延迟很高。

可能由于我用的是standalone模式, 所以没看到这些参数,不知道standalone模式下,这个参数是什么样的默认值

我用的是standalone模式,在standalone配置文件中没看到这个参数

默认是可能会有 1s 的 delay。这个是可以重现的吗?