在nodejs中创建大量Google pubsub订阅者的推荐方法是什么?

编程入门 行业动态 更新时间:2024-10-09 02:24:58

在nodejs中创建大量Google pubsub订阅者的推荐<a href=https://www.elefans.com/category/jswz/34/1771314.html style=方法是什么?"/>

在nodejs中创建大量Google pubsub订阅者的推荐方法是什么?

我需要听大约40个订阅(在未来几天内,这个数量将增加)。

[如果只有一个订阅,那么我将执行以下操作,

const subName = 'mysubscription'
const pubSubClient = new PubSub()
const startVidsubscription = pubSubClient.subscription(subName)
startVidsubscription.on('message', messageHandler)

const messageHandler = async(message) => {
// do stuff

}

但是,当我有数十个订阅时,我将无法执行此操作。因此,我正在尝试以下操作:

// the name is the name of each subscription and the variable is the variable name in which I will be holding the subscription object. 
var subscriptionDetails = [
    {'name': 'M10057-sub-cam1Api', 'variable': 'M10057Subscription'},
    {'name': 'M10058-sub-cam1Api', 'variable': 'M10058Subscription'},
    {'name': 'M10059-sub-cam1Api', 'variable': 'M10059Subscription'},
]

for(const subscription of subscriptionDetails){
        var subscription.variable = pubSubClient.subscription(subscription.name)
        subscription.variable.on('message', messageHandler)
    }

但是这给了我类似Unexpected token, expected ;的错误。

任何人都请让我知道在nodejs中收听大量订阅的推荐方法

回答如下:

您的一般方法应该有效。将预订对象分配给已定义为字符串的subscription.variable可能会遇到问题。

类似以下内容将起作用:

const {PubSub} = require('@google-cloud/pubsub');

const pubSubClient = new PubSub();
const messageHandler = async(message) => {
  // ... handle message ...
};

var subscriptionDetails = [
  {'name': 'M10057-sub-cam1Api'},
  {'name': 'M10058-sub-cam1Api'},
  {'name': 'M10059-sub-cam1Api'},
];

for (const subscription of subscriptionDetails) {
  subscription.variable = pubSubClient.subscription(subscription.name);
  subscription.variable.on('message', messageHandler);
}

然后您可以使用variable中的subscriptionDetails字段引用订阅对象。

如果要通过名称'M10057Subscription'引用订阅对象,则可以创建订阅对象的映射:

var subscriptionDetails = [
  {'name': 'M10057-sub-cam1Api', 'variable': 'M10057Subscription'},
  {'name': 'M10058-sub-cam1Api', 'variable': 'M10058Subscription'},
  {'name': 'M10059-sub-cam1Api', 'variable': 'M10059Subscription'},
];

var subscriptionObjects = {};

for (const subscription of subscriptionDetails) {
  subscriptionObjects[subscription.variable] = pubSubClient.subscription(subscription.name);
  subscriptionObjects[subscription.variable].on('message', messageHandler);
}

// subscriptionObjects['M10057Subscription'] is a subscription object

更多推荐

在nodejs中创建大量Google pubsub订阅者的推荐方法是什么?

本文发布于:2024-05-07 20:45:38,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1757173.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:方法   nodejs   Google   pubsub

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!