当前位置: 首页 > 知识库问答 >
问题:

AWS Lambda计划任务

闾丘山
2023-03-14

亚马逊宣布了AWS Lambda(http://AWS.Amazon.com/Lambda/)。

产品说明包括:

计划任务

AWS Lambda函数可以由外部事件计时器触发,因此可以在定期计划的维护时间或非高峰时段运行函数。例如,您可以触发一个AWS Lambda函数,在非繁忙时间执行每晚的存档清理。

当我读到这篇文章时,我明白了我终于可以有一种方法来始终如一地完成“类似朋党”的任务。我想每天下午5点运行一个特定的查询。

然而,我在文档中找不到这一点。它们只提到编程事件上的触发器,或者来自其他AWS服务的事件。

我是不是误会了?或者谁能给我指一下文件?

共有3个答案

司空通
2023-03-14

沃纳·沃格尔今晚(10/08)在Re:Invent上宣布,AWS Lambda现在有了自己的调度器。

2015-10-08 AWS Lambda发布说明:

您还可以设置AWS Lambda,使用AWS Lambda控制台定期,计划地调用您的代码。您可以指定固定比率(小时数,天数或周数),也可以指定cron表达式。有关示例,请参见演练5:使用Lambda函数处理预定事件(Python)。

您可以使用AWS数据管道来安排具有给定周期的任务。当您使用ShellCommandActivity配置管道时,该操作可以是任何命令。

例如,可以运行AWS CLI命令:

    函数(请参阅invoke)>

null

您还可以使用API定义调度:

{
 "pipelineId": "df-0937003356ZJEXAMPLE",
 "pipelineObjects": [
    {
      "id": "Schedule",
      "name": "Schedule",
      "fields": [
        { "key": "startDateTime", "stringValue": "2012-12-12T00:00:00" }, 
        { "key": "type", "stringValue": "Schedule" }, 
        { "key": "period", "stringValue": "1 hour" }, 
        { "key": "endDateTime", "stringValue": "2012-12-21T18:00:00"  }
       ]
     }, {
      "id": "DoSomething",
      "name": "DoSomething",
      "fields": [
        { "key": "type", "stringValue": "ShellCommandActivity" },
        { "key": "command", "stringValue": "echo hello" },
        { "key": "schedule", "refValue": "Schedule" }
      ]
    }
  ]
}

限制:最小调度间隔为15分钟。

杨良才
2023-03-14

自从发表这篇文章以来,似乎又出现了另一种解决方案:用不可靠的城镇时钟(UTC)来调度重复的AWS Lambda调用,作者在其中建议订阅SNS主题“不可靠的城镇时钟”(Unreliable Town Clock,简称Unreliable Town Clock,简称Unreliable Town Clock)。我既没有使用SWF也没有使用SNS,但在我看来SNS的解决方案更简单。以下是这篇文章的节选

不可靠的城市时钟(UTC)

不可靠的城市时钟(UTC)是一个新的,免费的公共SNS主题(亚马逊简单通知服务),它每一刻钟向所有订户广播一个钟声信息。它可以将编钟发送到AWS Lambda函数,SQS队列和电子邮件地址。

您可以使用chime属性每十五分钟运行一次代码,或者每小时只运行一次代码(例如,当minute==“00”时),或者每天运行一次代码(例如,当hour==“00”和minute==“00”时),或者任何其他一系列间隔。

您甚至可以订阅一个您只想在将来某个特定时间运行一次的函数:让该函数忽略所有调用,直到它在它想要的时间之后。当时间到时,它可以执行它的工作,然后从SNS主题中取消订阅自己。

将您的代码连接到不可靠的城镇时钟是快速而容易的。不需要应用程序或帐户创建

江阳夏
2023-03-14

正如这篇AWS博客文章中所宣布的,调度现在作为一种称为“CloudWatch events-Schedule”的事件源类型(也称为触发器)来支持,并且可以表示为速率或cron表达式。

导航到创建的“配置触发器”步骤,并指定“CloudWatch Event-Schedule"触发器。配置示例如下:

导航到lambda的“触发器”选项卡,选择“添加触发器”,并指定“CloudWatch事件计划”触发器。示例屏幕截图,其中我有一个现有的带有SNS触发器的lambda:

加载后,配置该触发器的UI与上面的“Add Scheduled Event to a new Lambda”部分中的屏幕截图相同。

对于您的示例案例,您希望使用 而不是 。lambda中的Cron表达式需要所有字段,并且用UTC表示。所以要在每天5pm(UTC)运行一个函数,请使用以下cron表达式:

cron(0 17 * * ? *)
    的cron表达式,可以在从AWS控制台创建函数期间选择该表达式。
  • 自此功能首次发布以来,此事件类型的名称已从“计划事件”更改为“CloudWatch事件-计划”。/li>
  • 在发布此特性之前,对此问题的建议解决方案(参见“Getting Started with AWS Lambda”,时间为42min50secs)是使用SWF创建计时器,或者使用外部应用程序创建计时器。/li>
 类似资料:
  • 计划任务系统使用说明 新版计划任务为用户提供了以下功能 创建一个计划任务 修改一个计划任务 删除计划任务 查看一个namespace的所有计划任务 查看一个namespcae的某个计划任务详细内容 查看一个计划任务的执行状况 查看任务的日志 查看创建的计划任务列表和某个计划任务的详细信息。 点击计划任务v2,进入计划任务列表,在这里可以看到用户名下的所有计划任务,点击一个计划任务,可以看到该计划任

  • > 我需要在执行前一个任务后以不同的延迟一个接一个地运行计划的任务。示例。有一个任务列表和延迟列表。 现在我需要运行task1通过100ms,task2在task1之后通过9ms,task3在task2之后通过22ms等等。 我正在使用javafx。任务可以使用一些UI更新方法,例如更改节点位置。这迫使我使用平台。runLater()方法,因为如果不这样做,则会出现异常“Not on FX app

  • 在此之前我问了一个问题。我的服务conifg是: 我编写了一个扩展mediator交易文件。该类返回文件名并向服务发送请求。服务没有输入消息。我要每天13:30的服务。我尝试添加新的计划任务。但是它不能工作?谁能告诉我如何设置这个计划任务? 我也不知道如何设置“固定服务器”。

  • 本文向大家介绍浅谈MySQL event 计划任务,包括了浅谈MySQL event 计划任务的使用技巧和注意事项,需要的朋友参考一下 一、查看event是否开启 show variables like '%sche%';  set global event_scheduler =1;  二、 -- 设置时区并设置计划事件调度器开启,也可以 event_scheduler = ON set tim

  • 我使用spring boot with@Scheduled已经有一段时间了,但是最近我发现有一个潜在的危险威胁,如下所述:我发现当应用程序运行和计划任务运行几次时,有很多线程等待但没有完成,这在thread stacktrace中显示为'kill-3'。为了清除可能导致此问题的任何内容,我做了一个完全虚设的任务: 这是我的日志: 20151102 11:54:50.660信息池-3-线程-2---

  • 我需要使用将widows服务器的Scheduler任务中的几个计划任务转换为一个独立的应用程序。网 在过去,我用过石英。Net框架4。x、 基于不同调度器的多个长时间运行的任务存在一些小问题。 现在我正在使用。Net 5,我想知道是否有一种新的方式来安排任务,比如worker服务,或者使用Quartz更好、更灵活。网 因为我需要运行长时间的任务,从30到2小时,我需要创建一个定时的后台任务,使用系