go - 谷歌云函数延迟
问题描述
我想看看使用 Golang 云功能实时处理发布/订阅消息的可行性。我写了一个简单的 Go 函数来计算 pub/sub 消息中的 unix 时间戳和当前时间之间的时间差:
package cloudfunction
import (
"context"
"log"
"strconv"
"time"
)
// PubSubMessage is the payload of a Pub/Sub event.
type PubSubMessage struct {
Data []byte `json:"data"`
}
// HelloPubSub hellos to the world.
func HelloPubSub(ctx context.Context, m PubSubMessage) error {
unix := string(m.Data)
i, err := strconv.ParseInt(unix, 10, 64)
if err != nil {
panic(err)
}
tm := time.Unix(i, 0)
tnow := time.Now()
log.Println("Latency cloud function : ", tnow.Sub(tm))
return nil
}
随后我可以部署该功能(我位于比利时,所以我使用 europe-west1 区域):
gcloud functions deploy HelloPubSub --runtime go113 --trigger-topic cloudfunction --region europe-west1
然后我通过以下方式将消息发布到 pub/sub 主题(我还从云 shell 运行它以消除我的互联网速度):
gcloud pubsub topics publish cloudfunction --message $(date +"%s")
我可以想象会有几秒钟的冷启动,但之后我预计延迟会显着下降到大约几百毫秒,但我的测试清楚地证明我错了:
有人知道这些延迟是否在预期的延迟间隔内,还是我在这里做错了什么(非常明显)?
解决方案
推荐阅读
- amazon-web-services - 网站的 AWS Cognito 应用程序客户端设置
- java - JAVA花括号
- vba - 使用添加项目错误从一个列表框中选择名称到另一个
- flutter - Flutter 自动测试
- r - 如何将我的邮政编码 NUT ID 添加到我的欧洲之星代码中?
- recursion - DrRacket - 找到最长的递增子序列
- python-requests - 在 Discord 中发布时的数据更改。我使用 Discord.py
- powerbi - POWER BI - 如何获得作为计算度量的整个列的中位数
- cypress - 等待角度稳定,继续测试执行
- tags - 为什么用变量排除标签在机器人框架中不起作用?