Должен ли я создать канал сообщений во время выполнения? - PullRequest
0 голосов
/ 10 февраля 2019

При использовании системы MQ, например RabbitMQ, Google Pub/Sub.

Должен ли я создавать канал / очередь сообщений во время выполнения приложения?Или сначала создать его вручную?

Например, при использовании Google Pub/Sub создать topic во время выполнения.

async function createTopic(topicName: string): Promise<any> {
  const topicInstance = pubsubClient.topic(topicName);
  const [exists] = await topicInstance.exists();
  if (exists) {
    logger.info(`${topicName} topic is existed`);
    return;
  }
  return pubsubClient
    .createTopic(topicName)
    .then((data) => {
      logger.info(`Create topic ${topicName} successfully`);
      return data;
    })
    .catch((err) => logger.error(err));
}

Особенно с учетом процессов разработки, развертывания и непрерывной интеграции.

Я прочитал из книги, что создание очереди сообщений в режиме реального времени не очень полезно.

1 Ответ

0 голосов
/ 11 февраля 2019

Ничто не мешает вам создать тему во время выполнения.Однако, если у вас нет клиентов, которые проверяют наличие темы и ожидают подписки на нее, вы будете публиковать сообщения, которые никогда не будут получены.Лучшим вариантом было бы заранее определить тему с помощью автоматического масштабирования подписчиков (возможно, работающих в облачных функциях), готовых принимать сообщения и предпринимать соответствующие действия всякий раз, когда ваш издатель начинает их генерировать.

...