我希望能够安排云函数在特定时间执行。它应该只运行一次。
我基本上有一个名为“startTask”的函数,它修改Firestore数据库中的一些数据。在X秒后(时间传递给startTask函数),应调用“finishTask”函数。
我已经尝试过使用Google Cloud Tasks,但我觉得这不是正确的方法。
我希望能够安排云函数在特定时间执行。它应该只运行一次。
我基本上有一个名为“startTask”的函数,它修改Firestore数据库中的一些数据。在X秒后(时间传递给startTask函数),应调用“finishTask”函数。
我已经尝试过使用Google Cloud Tasks,但我觉得这不是正确的方法。
您可以使用 Cloud Tasks。它将允许您在 x 秒后收到警报。 https://cloud.google.com/tasks/docs/creating-http-target-tasks
gcloud pubsub topics create cron-topic
# create cron-sub for testing. Function will create it's own subscription
gcloud pubsub subscriptions create cron-sub --topic cron-topic
以下是命令,但由于它还处于测试阶段,请参阅这里的控制台指南
# send a message every 3 hours. For testing use `0/2 * * * *` for every 2 min
gcloud beta scheduler jobs create pubsub --topic=cron-topic --schedule='0 */3 * * *'
将您的函数代码放在当前目录中,并使用此命令部署函数以侦听主题。
FUNCTION_NAME=cron-topic-listener
gcloud functions deploy ${FUNCTION_NAME} --runtime go111 --trigger-topic cron-topic
注意:发布/订阅事件至少会发送一次。在某些情况下,事件可能会被发送多次。请确保您的函数是幂等的。