Google Cloud:如何以编程方式安排重复性任务?

时间:2018-03-16 16:10:19

标签: asp.net cron .net-core google-cloud-platform scheduled-tasks

我想在Google云端平台上构建任务调度服务。任务可以像触发URL一样简单。任务可以重复出现(每小时一次,每天两次,每周四......),并且可以动态创建和删除。

我可以使用Google Cloud Platform上的哪些服务/ API进行此操作?

我查看了Google App Engine cron作业,但似乎没有办法以编程方式修改它们。如果可能的话,我想避免每分钟运行一个cron作业,以检查是否有任务要运行。

我选择的框架是ASP.NET Core,但如果有更好的解决方案,例如在Java中,我愿意尝试一下。

2 个答案:

答案 0 :(得分:1)

正如您所知,App Engine Cron Service没有用于以编程方式管理cron任务的API。使用名为cron.yaml的文件配置Cron任务,可以通过编程方式修改此文件并将其上传到Google cron服务(details)。我不确定您的任务安排服务的确切要求,这对您的问题来说可能是一个很好的解决方案。

另一种选择是运行Google计算引擎实例。由于这基本上是由您维护的虚拟服务器,因此您可以完全控制它;允许您选择操作系统,后端/前端技术等。例如,您可以运行Linux服务器,使用asp.net核心后端来管理crontab任务。

答案 1 :(得分:1)

我还建议您查看Google Cloud Tasks。您可以创建队列并将任务推入/拉出队列

  
      
  • 推送队列通过将HTTP请求传递到App Engine工作程序服务来运行任务。他们以可靠,稳定的方式发送这些请求   评估并确保可靠的任务执行。因为你可以控制   从队列发送任务的速率,您可以控制   工人的缩放行为,从而降低您的成本。
  •   
  • 拉队列根本不调度任务。他们依靠其他工作人员服务从自己的队列中“租赁”任务   倡议。拉式队列为您提供了更多的动力和灵活性   以及在哪里处理任务,但它们还要求您做更多   流程管理。租用任务时,租赁工人声明   最后期限。在截止日期到来之前,工人必须   完成任务并将其删除,否则Task Queue服务将允许   另一个工人将其出租。
  •   

来源:https://cloud.google.com/appengine/docs/standard/java/taskqueue/