Search in sources :

Example 1 with TopicMeta

use of com.aliyun.mns.model.TopicMeta in project xnx3 by xnx3.

the class MNSUtil method createTopic.

/**
 * 创建主题
 * @param topicName 要创建的主题的名字
 */
public void createTopic(String topicName) {
    TopicMeta meta = new TopicMeta();
    meta.setTopicName(topicName);
    try {
        CloudTopic topic = getMNSClient().createTopic(meta);
    } catch (Exception e) {
        System.out.println("create topic error, " + e.getMessage());
        e.printStackTrace();
    }
}
Also used : TopicMeta(com.aliyun.mns.model.TopicMeta) CloudTopic(com.aliyun.mns.client.CloudTopic) ServiceException(com.aliyun.mns.common.ServiceException) ClientException(com.aliyun.mns.common.ClientException)

Example 2 with TopicMeta

use of com.aliyun.mns.model.TopicMeta in project jeesuite-libs by vakinge.

the class MNSClientInstance method createTopicIfAbsent.

public static CloudTopic createTopicIfAbsent(String topicName, String subForQueue) {
    TopicMeta topicMeta = new TopicMeta();
    topicMeta.setTopicName(topicName);
    CloudTopic topic = getClient().getTopicRef(topicName);
    try {
        topic.getAttribute();
    } catch (ServiceException e) {
        if ("TopicNotExist".equals(e.getErrorCode())) {
            topic.create(topicMeta);
        }
    }
    if (StringUtils.isNotBlank(subForQueue)) {
        String subscriptionName = "sub-for-queue-" + subForQueue;
        PagingListResult<SubscriptionMeta> topicSubscriptions = topic.listSubscriptions(subscriptionName, "", 1);
        if (topicSubscriptions == null || topicSubscriptions.getResult() == null || topicSubscriptions.getResult().isEmpty()) {
            // 创建订阅关系
            SubscriptionMeta subMeta = new SubscriptionMeta();
            subMeta.setSubscriptionName(subscriptionName);
            subMeta.setEndpoint(topic.generateQueueEndpoint(subForQueue));
            subMeta.setNotifyContentFormat(SubscriptionMeta.NotifyContentFormat.SIMPLIFIED);
            subMeta.setNotifyStrategy(SubscriptionMeta.NotifyStrategy.EXPONENTIAL_DECAY_RETRY);
            topic.subscribe(subMeta);
        }
    }
    return topic;
}
Also used : TopicMeta(com.aliyun.mns.model.TopicMeta) CloudTopic(com.aliyun.mns.client.CloudTopic) SubscriptionMeta(com.aliyun.mns.model.SubscriptionMeta) ServiceException(com.aliyun.mns.common.ServiceException)

Example 3 with TopicMeta

use of com.aliyun.mns.model.TopicMeta in project jeesuite-libs by vakinge.

the class MNSClientInstance method createTopicIfAbsent.

public static CloudTopic createTopicIfAbsent(String topicName, String subForQueue) {
    TopicMeta topicMeta = new TopicMeta();
    topicMeta.setTopicName(topicName);
    CloudTopic topic = getClient().getTopicRef(topicName);
    try {
        topic.getAttribute();
    } catch (ServiceException e) {
        if ("TopicNotExist".equals(e.getErrorCode())) {
            topic.create(topicMeta);
        }
    }
    if (StringUtils.isNotBlank(subForQueue)) {
        String subscriptionName = "sub-for-queue-" + subForQueue;
        PagingListResult<SubscriptionMeta> topicSubscriptions = topic.listSubscriptions(subscriptionName, "", 1);
        if (topicSubscriptions == null || topicSubscriptions.getResult() == null || topicSubscriptions.getResult().isEmpty()) {
            // 创建订阅关系
            SubscriptionMeta subMeta = new SubscriptionMeta();
            subMeta.setSubscriptionName(subscriptionName);
            subMeta.setEndpoint(topic.generateQueueEndpoint(subForQueue));
            subMeta.setNotifyContentFormat(SubscriptionMeta.NotifyContentFormat.SIMPLIFIED);
            subMeta.setNotifyStrategy(SubscriptionMeta.NotifyStrategy.EXPONENTIAL_DECAY_RETRY);
            topic.subscribe(subMeta);
        }
    }
    return topic;
}
Also used : TopicMeta(com.aliyun.mns.model.TopicMeta) CloudTopic(com.aliyun.mns.client.CloudTopic) SubscriptionMeta(com.aliyun.mns.model.SubscriptionMeta) ServiceException(com.aliyun.mns.common.ServiceException)

Aggregations

CloudTopic (com.aliyun.mns.client.CloudTopic)3 ServiceException (com.aliyun.mns.common.ServiceException)3 TopicMeta (com.aliyun.mns.model.TopicMeta)3 SubscriptionMeta (com.aliyun.mns.model.SubscriptionMeta)2 ClientException (com.aliyun.mns.common.ClientException)1