Articles of 谷歌云,发布订阅

如何在JavaScript中使用谷歌云发布/子?

我正在评估谷歌云pub / sub发送消息到我的Java脚本客户端应用程序(离子,angular应用程序)。 我找不到在JavaScript中订阅pub / sub消息的示例代码。 JFYI:我在服务器端有nodejs。

Google Cloud PubSub – 实现拉

我在nodejs中使用google pub sub。 我有一个发布消息的服务,然后是一个监听消息并在消息上实现一些进程的工作者。 现在我想要我的服务一次拉五个订阅,并在完成处理时拉另一个订阅。 我如何实现这个? 这是我的开始代码,我该如何继续? var pubsubClient = require('google-cloud').pubsub({ projectId: 'my-project' }); var topic = pubsubClient.topic('my-first-pub-sub'); var options = { reuseExisting: true, ackDeadlineSeconds: 90, autoAck: true, interval: 5000 }; topic.subscribe('MySub', options, function(err, subscription, apiResponse) { // Register listeners to start pulling for messages. function onError(err) { console.log("err", err); } function onMessage(message) { console.log("subscription", […]

Google Cloud PubSub:以前有效的订阅突然未经授权

我在使用Google Cloud PubSub API时遇到了一些麻烦。 最近,我开始使用Cloud PubSub为我正在处理的聊天服务器排队消息。 来自PubSub订阅的消息将被转发给使用socket.io节点库的用户。 我没有问题得到这个设置 – 我运行我的node.js服务器,打开几个浏览器窗口,我可以聊天没有任何问题。 但是,我注意到,经常在服务器运行了几个小时后,它开始吐出下面的错误: (node:2525) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error: Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project. (node:2525) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 2): Error: Request had invalid authentication credentials. Expected OAuth […]

如何使用Node.js控制Cloud PubSub中的确认

基本上我已经创build了一个云function(写一个Node.js代码),它将触发云pubsub主题的消息,并将数据加载到Bigquery表。 主题中的消息在被云function读取后被删除。 我了解,订户内部发送确认和结果,消息从主题中删除。 我想控制发送给发布者的确认。 怎么能实现,没有find任何文件。

Google Pub / Sub如何在Pull上设置读取超时

我想在订阅上设置拉取请求的读取超时。 现在唯一的select是设置returnImmediately=true或者等到pubsub返回,如果没有消息发布,似乎是90秒。 我正在使用gcloud-node模块来调用pubsub。 它使用引擎盖下的请求模块进行gcloud api调用。 我已经更新了gcloud-node / lib / pubsub / subscription.js的本地副本,将请求超时设置为30秒 this.request({ method: 'POST', uri: ':pull', timeout: 30000, json: { returnImmediately: !!options.returnImmediately, maxMessages: options.maxResults } } 当我这样做,我看到的行为是30秒后客户端连接将超时,但pubsub仍然打开请求。 如果我有两个客户端拉取订阅,并且其中一个客户端在30秒后超时,则会向该主题发布一条消息,剩下的正在侦听的客户端将有50/50的机会检索该消息。 有一种方法可以告诉pubsub在一段时间之后超时拔出连接吗? 更新:我可能需要澄清我的例子了一下。 我有两个同时连接的客户端,并从相同的订阅。 两者之间唯一的区别是第一个configuration为30秒后超时。 由于两个客户端连接到相同的订阅,pubsub将分布在他们两个之间的消息负载。 如果我在两个客户端连接后45秒发布消息,则pubsub会将消息传递给尚未超时的第二个客户端。 如果我发送10条消息而不是一条消息,则第二个客户端将收到10条消息的子集。 看起来这是因为我的客户进行了长时间的投票。 如果客户端断开连接,服务器不知道,并且会尝试发送已发送超时的客户端发出的请求响应的已发布消息。 从我的testing中,这是我观察到的行为。 我想要做的是能够在拉请求中发送一个超时参数,告诉子网站在30000ms之后发送一个响应,如果在这段时间内没有发布消息的话。 阅读API文档 ,这似乎不是一个选项。

发布到gcloud pubsub时从未调用callback

我有一个将消息发送到Google Cloud Pubsub的应用程序。 直到昨天之前,它工作正常,但当它调用时(Coffeescript代码如下),它开始挂起: topic.publish data, (err, data) -> console.error err if err callback(err) 它每分钟发生几次,并不总是这样,但是当发生这种情况时,callback就不会被调用,也不会有消息到达,这意味着我将丢失这些数据。 我从来没有这样的问题,我已经使用了3个月的pubsub。 我已经尝试更新软件包,部署到另一台机器并创build一个新的主题,但总是有相同的结果。 这是发生在其他人身上吗? 谢谢。

如何评分 – 限制Google云端Pub / Sub Queue

我使用Google的Pub / Sub队列来处理服务之间的消息。 一些用户连接到速率限制API。 例如,我将街道地址推送到发布/订阅主题上。 我有一个Cloudfunction,通过推送订阅该主题,并呼叫外部限速地理编码服务。 理想情况下,我的街道地址可以毫不拖延地推到话题上,话题会保留这些消息 – 以限速的方式呼叫用户。 反正有configuration这样的延迟,或消息分发速率限制? 增加Ack窗口并没有什么帮助:我已经构build了这个系统来防止长时间运行的function。

Google Cloud Pub / Sub API – 推送电子邮件

我使用node.js创build一个应用程序,每次收到电子邮件时都会从Gmail获取PUSH,然后根据CRM中的第三方数据库检查该应用程序,并在该CRM中包含电子邮件时在CRM中创build一个新字段。 我无法使用Google新的Cloud Pub / Sub,这似乎是在没有持续轮询的情况下从Gmail推送的唯一方法。 我已经通过这里的说明: https : //cloud.google.com/pubsub/prereqs,但我不明白这是应该如何从我的桌面上的应用程序工作。 看起来pub / sub可以连接到一个已validation的域,但是我不能直接连接到我的电脑上的.js脚本。 我已经保存在一个JSON文件的API密钥,并使用以下内容: var gcloud = require('gcloud'); var pubsub; // From Google Compute Engine: pubsub = gcloud.pubsub({ projectId: 'my-project', }); // Or from elsewhere: pubsub = gcloud.pubsub({ projectId: 'my-project', keyFilename: '/path/to/keyfile.json' }); // Create a new topic. pubsub.createTopic('my-new-topic', function(err, topic) {}); // Reference an existing […]

在应用程序引擎上使用node.js,使用任务队列还是pub / sub会更好

我们一直在把我们的apis从python转移到node。 我们已经使用我们的Python应用程序引擎API的任务队列。 现在,在app引擎上支持node.js,您是否build议我们使用任务队列或云pub / sub来执行任务? 这些优点/缺点包括可靠性,可移植性等