当前位置: 首页>>代码示例>>Java>>正文


Java PullTaskCallback类代码示例

本文整理汇总了Java中org.apache.rocketmq.client.consumer.PullTaskCallback的典型用法代码示例。如果您正苦于以下问题:Java PullTaskCallback类的具体用法?Java PullTaskCallback怎么用?Java PullTaskCallback使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


PullTaskCallback类属于org.apache.rocketmq.client.consumer包,在下文中一共展示了PullTaskCallback类的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: main

import org.apache.rocketmq.client.consumer.PullTaskCallback; //导入依赖的package包/类
public static void main(String[] args) throws MQClientException {
    final MQPullConsumerScheduleService scheduleService = new MQPullConsumerScheduleService("GroupName1");

    scheduleService.setMessageModel(MessageModel.CLUSTERING);
    scheduleService.registerPullTaskCallback("TopicTest1", new PullTaskCallback() {

        @Override
        public void doPullTask(MessageQueue mq, PullTaskContext context) {
            MQPullConsumer consumer = context.getPullConsumer();
            try {

                long offset = consumer.fetchConsumeOffset(mq, false);
                if (offset < 0)
                    offset = 0;

                PullResult pullResult = consumer.pull(mq, "*", offset, 32);
                System.out.printf("%s%n", offset + "\t" + mq + "\t" + pullResult);
                switch (pullResult.getPullStatus()) {
                    case FOUND:
                        break;
                    case NO_MATCHED_MSG:
                        break;
                    case NO_NEW_MSG:
                    case OFFSET_ILLEGAL:
                        break;
                    default:
                        break;
                }
                consumer.updateConsumeOffset(mq, pullResult.getNextBeginOffset());

                context.setPullNextDelayTimeMillis(100);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    });

    scheduleService.start();
}
 
开发者ID:lirenzuo,项目名称:rocketmq-rocketmq-all-4.1.0-incubating,代码行数:40,代码来源:PullScheduleService.java

示例2: registerPullTaskCallback

import org.apache.rocketmq.client.consumer.PullTaskCallback; //导入依赖的package包/类
private void registerPullTaskCallback() {
    this.pullConsumerScheduleService.registerPullTaskCallback(targetQueueName, new PullTaskCallback() {
        @Override
        public void doPullTask(final MessageQueue mq, final PullTaskContext context) {
            MQPullConsumer consumer = context.getPullConsumer();
            try {
                long offset = localMessageCache.nextPullOffset(mq);

                PullResult pullResult = consumer.pull(mq, "*",
                    offset, localMessageCache.nextPullBatchNums());
                ProcessQueue pq = rocketmqPullConsumer.getDefaultMQPullConsumerImpl().getRebalanceImpl()
                    .getProcessQueueTable().get(mq);
                switch (pullResult.getPullStatus()) {
                    case FOUND:
                        if (pq != null) {
                            pq.putMessage(pullResult.getMsgFoundList());
                            for (final MessageExt messageExt : pullResult.getMsgFoundList()) {
                                localMessageCache.submitConsumeRequest(new ConsumeRequest(messageExt, mq, pq));
                            }
                        }
                        break;
                    default:
                        break;
                }
                localMessageCache.updatePullOffset(mq, pullResult.getNextBeginOffset());
            } catch (Exception e) {
                log.error("A error occurred in pull message process.", e);
            }
        }
    });
}
 
开发者ID:lirenzuo,项目名称:rocketmq-rocketmq-all-4.1.0-incubating,代码行数:32,代码来源:PullConsumerImpl.java


注:本文中的org.apache.rocketmq.client.consumer.PullTaskCallback类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。