gpt4 book ai didi

javascript - 维护云函数的多次调用之间的持久连接

转载 作者:太空宇宙 更新时间:2023-11-04 15:50:30 25 4
gpt4 key购买 nike

我目前正在将我的 firebase-queue 工作线程迁移到 Cloud Functions for Firebase。我的一名工作人员通过 APNS 和 GCM 向设备发送推送通知。为了通过 APNS 发送推送通知,我使用库 node-apn,在其中使用

创建与 APNS 的持久连接

const apnConnection = new apn.Connection(connectionOptions);

然后,每当我收到发送任务的任务时,我就可以继续使用 apnConnection 向设备发送推送通知,而无需每次都重新创建它。

apnConnection.pushNotification(pushNotification, 设备);

我想问这样的持久连接是否也会在多次调用 Firebase 函数之间保持,或者我是否需要创建此连接并在每次调用 Firebase 函数时将其关闭。我的 Firebase 函数看起来像

const functions = require('firebase-functions');
const admin = require('firebase-admin');

admin.initializeApp(firebaseConfig);

const apnConnection = new apn.Connection(connectionOptions);

exports.verifyCode = functions.database.ref('/tasks/sendPushNotification/{taskId}')
.onWrite(event => {
const taskSnapshot = event.data
if(!taskSnapshot.exists()) {
return
}
const task = taskSnapshot.val()

// Create pushNotification and device from the task

return apnConnection.pushNotification(pushNotification, device);
})

我认为这取决于这些函数是否可以在调用之间维持某种状态,或者它们更像完全无状态的 AWS lambda 函数,并且由于我们只初始化管理 SDK 一次,我认为它在调用之间维持某种状态调用,但我想在移动代码之前进行检查。

最佳答案

虽然大多数情况下您的函数会在同一个容器中调用,但您不能依赖于此。容器可能会被回收,或者 GCF 可能会启动额外的容器,以防您的函数被调用超过单个容器可以处理的数量

关于javascript - 维护云函数的多次调用之间的持久连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43155978/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com