Sha*_*dra 6 firebase google-cloud-pubsub google-cloud-functions
我正在将 firebase 函数与 pubsub 一起使用。每次有传入消息(推送)时都会调用这些函数,我正在考虑为这些函数合并重试机制。重试无效。示例函数如下所示。
export const helloWorldWithRetry = functions
.runWith({
timeoutSeconds: 300,
memory: "512MB",
vpcConnector: cloudFunctionOptions.connectors["abcd_data_connector"],
vpcConnectorEgressSettings: "ALL_TRAFFIC",
maxInstances: 1,
failurePolicy: {
retry: {},
}
})
.region("asia-south1")
.pubsub.topic("helloWorldPubSubWithRetry")
.onPublish(async (message, context) => {
console.log("----------- ATTEMPTING -------------")
const eventAgeMs = Date.now() - Date.parse(context.timestamp);
console.log(`The event timestamp is ${Date.parse(context.timestamp)} and eventAge is ${eventAgeMs}`)
const eventMaxAgeMs = 60 * 1000;
if (eventAgeMs > eventMaxAgeMs) {
console.log(`Dropping event with age[ms]: ${eventAgeMs}`);
return;
}
throw new Error("Error, Retry")
});
Run Code Online (Sandbox Code Playgroud)
在这些情况下是否可以使用重试?文档说该消息ack在函数调用时立即出现
将消息放回队列或拉取方法是实现重试的唯一合乎逻辑的方法吗?
这些函数可以配置为重试失败 -请参阅文档。
并在代码中执行此操作 -
functions.runWith({failurePolicy: true}).foo.onBar(myHandler);
Run Code Online (Sandbox Code Playgroud)
因此,您需要做的就是确定可重试的异常类型并将其从函数中抛出。
| 归档时间: |
|
| 查看次数: |
689 次 |
| 最近记录: |