在特定时间运行Google Cloud Function

时间:2018-12-18 19:22:47

标签: function google-cloud-platform cloud task schedule

我想将Cloud Function的执行安排在特定时间。它应该只运行一次。

我基本上有一个函数“ startTask”,它可以修改Firestore数据库中的某些数据。 X秒钟后(时间已传递给startTask函数),应调用“ finishTask”函数。

我已经尝试过弄乱Google Cloud Tasks,但是我觉得这不是正确的方法。

2 个答案:

答案 0 :(得分:1)

Google Cloud没有能够满足您所需要的服务。如果您需要X在用户执行Y之后的N秒钟内发生,则需要编写自己的代码。

您没有指定要用于计算的服务(App Engine,Compute Engine,Kubernetes等),但是用几乎任何语言编写任务调度服务并不难。有很多方法可以做到这一点(客户端代码/服务器端代码)。许多OS /语言组合都支持通过超时和回调来调度功能。

答案 1 :(得分:0)

最简单的方法是创建一个发布/预订主题max(),您的云功能将预订该主题。 Cloud Scheduler可以按计划将事件推送到cron-topic

创建主题和订阅

cron-topic

创建时间表

命令在下面,但由于它是Beta版,请参见console guide here

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 * * *' 主题的函数

将您的功能代码放在当前目录中,并使用此命令来部署侦听cron-topic主题的功能

cron-topic

注释发布/订阅事件至少发送一次。在某些情况下,事件可以发送多次。确保您的函数是幂等的