在没有 cron 的情况下在 AWS 中运行计划任务

2024-01-11

目前我在亚马逊有一台服务器,我把所有的 cronjobs 都放在里面。我想消除这个单点故障,并将所有任务公开为 Web 服务。我想将 VPC ELB 背后的服务公开给一些服务器,这些服务器将在调用时运行任务。

Amazon (AWS) 是否提供某种服务可以按计划的时间间隔运行重复的作业(实际上称为 Web 服务)?我真的希望能够在时间/日期规范方面保留 cron 功能,但将驱动程序的 HA(在正确的时间调用端点的东西)外包给 AWS。

我喜欢 SQS 提供 Web 端点的方式,但据我所知,您无法安排它们。 SWF 似乎也不适合。


AWS 宣布 https://aws.amazon.com/blogs/aws/aws-lambda-update-python-vpc-increased-function-duration-scheduling-and-more/在 2015 年 re:Invent 会议上支持 Lambda 中的预定函数。借助此功能,用户可以使用类似 cron 的语法按计划执行 Lambda 函数。这Lambda 文档显示了一个示例 http://docs.aws.amazon.com/lambda/latest/dg/getting-started-scheduled-events.html使用 Python 执行预定事件。

目前,计划的 lambda 可以运行的最小分辨率是 1 分钟(与 cron 相同,但不如 systemd 计时器那么细粒度)。

The Lambder https://github.com/LeafSoftware/python-lambder项目有助于简化 Lambda 上计划函数的使用。

戈登的 cron 示例 https://github.com/jorgebastida/gordon/tree/master/examples/cron可能有用于部署预定 lambda 函数的最简单的接口。


原始答案,为后代保存。

正如 Eric Hammond 和其他人所说,没有用于计划任务的原生 AWS 服务。只有其他答案中提到的解决方法和一半解决方案。

回顾一下当前的选项:

  • 如 Eric Hammond 所描述的,按计划启动和停止的单实例自动缩放组。
  • 使用简单工作流服务计时器 http://docs.aws.amazon.com/amazonswf/latest/developerguide/swf-dg-timers.html,这根本不直观。这案例分析 http://aws.amazon.com/swf/testimonials/swfnasa/提到JPL使用SWF构建分布式cron,但没有实现细节。还有一个参考代码示例 http://aws.amazon.com/code/3015904745387737隐藏在 SWF 代码示例中。
  • 使用类似的东西自己运行cronlock https://github.com/kvz/cronlock.
  • 使用类似的东西不可靠的城镇时钟 (UTC) https://alestic.com/2015/05/aws-lambda-recurring-schedule/按计划运行 Lambda 函数。请记住,Lambda 目前无法访问 VPC 内的资源

希望更好的解决方案很快就会出现。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在没有 cron 的情况下在 AWS 中运行计划任务 的相关文章

随机推荐

  • 如何向 jquery.datatables 列添加类?

    我为 jquery datatables 创建了一个大表 这对我来说非常有用 但我需要为每个 td 元素相对于其列设置一个类名 例如我想要一列 包括 th 和所有 td 有一个class volume 有这样的问题 我使用此代码来初始化该类
  • Xcode 6 - Main.storyboard 仅显示为源代码,缺少 Interface Builder

    不知何故 我的 Xcode 设置变得混乱 因为它只会将我的 Main storyboard 文件显示为 XML 代码 我被告知可以通过从 打开方式 菜单中选择界面生成器来解决此问题 但菜单下没有任何内容 唯一的 选择 是灰显的 我已经清除了
  • 模拟程序JoinPoint 签名

    我正在尝试模拟 ProceedingJoinPoint 类 但在模拟方法时遇到困难 这是调用模拟类的代码 ProceedingJoinPoint joinPoint Object targetObject joinPoint getTarg
  • 如何在python 3.4中安装xmlrpclib?

    当我尝试安装 xmlrpclib 时 我在 python 版本 3 4 中收到以下错误 下载 解压 xmlrpclib 找不到任何满足 xmlrpclib 要求的下载 一些外部托管的文件被忽略 使用 allow external xmlrp
  • Sonarqube Web 应用程序未启动

    我正在Windows下使用PostgreSQL9 5安装SN5 5 不幸的是 我遇到了错误 Webapp 未启动 下面是完整的堆栈跟踪 我想我首先在 将上下文初始化事件发送到类 org sonar server platform Platf
  • 如何将特定的可变“订单”保存到数据库中

    假设我有一些对象 并且我希望用户能够以他们希望的任何方式对它们重新排序 例如通过拖动它们 所以我会有 Cheese Muffins Milk 然后用户将 牛奶 拖到顶部 进行新订单 Milk Cheese Muffins 是否有最佳实践如何
  • 嵌套 JSON 对象 - 我是否必须使用数组来处理所有事情?

    有没有什么方法可以在 JSON 中嵌套对象 这样我就不必用所有东西制作数组 为了正确解析我的对象 我似乎需要这样的结构 data stuff onetype id 1 name John Doe id 2 name Don Joeh oth
  • djangorest框架更新序列化器中的方法,实例不会立即保存

    要更新的实例有 email protected cdn cgi l email protection 电子邮件要更新或更改为 email protected cdn cgi l email protection UserUpdateSeri
  • 如何获取所有带有特色图片的 WordPress 帖子?

    WordPress 3 中有特色图片功能 如何获取所有带有特色图片的帖子 这是我当前的自定义循环 loop new WP Query array posts per page gt 15 这应该有效 loop new WP Query ar
  • Javascript 事件处理和流程控制

    我正在尝试构建一个根据提供的输入加载的网页 基本上 我在 javascript 中的事件处理方面遇到了一些麻烦 来自 python 如果我想在继续显示下一个对象之前等待特定的键盘输入 我会创建一个while循环并在其中放置一个关键侦听器 P
  • MapKit 显示整个地球

    我正在尝试在 MKMapView 中绘制整个地球仪 通过捏合缩小 我只能缩小到一定程度 我希望能够缩小到这个级别以上 以在地图上显示整个地球 这似乎不是很困难 但我一直找不到任何解决方案 里面的地图MKMapView不会在侧面重复 因此您无
  • 将 CSV 文件的内容加载到数组而不打开文件[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我需要将 6000 多个 csv 文件整理成一个 csv 文档 目前的VBA流程是 1 打开单独的CSV数据文件 2 根据行数将文件内
  • 如何在 Chutzpah 的无头浏览器中使用 templateUrl 测试指令

    有谁知道如何让像 Chutzpah 的 Visual Studio 测试适配器这样的无头浏览器允许指令访问其 html 模板文件 Chutzpah 使用 PhantomJS 作为无头浏览器 这似乎限制了我的选择 我正在使用 Chutzpah
  • azure apim中的JWT验证失败错误

    我目前正在尝试使用以下文档实施 Oauth2 0 来保护 API https learn microsoft com en us azure api management api management howto protect backe
  • 您在实体框架中发现的最烦人的功能(或缺乏功能)是什么?

    我从实体框架开始 听起来不错 但我想知道我是否应该留意某个地方的弱点 那里有什么经验吗 您可能需要开始在这些问题前加上您正在讨论的版本的前缀 NET 4 0 即将发布的版本中已经修复了大量的烦恼 这是我在使用第一个版本大约 6 个月后在 s
  • 当触发新管道时取消之前的管道 GitHub Actions

    我遇到了拦截器 我确信其他人一定也遇到过这个问题 所以只需检查是否有任何解决方法 这是一个 Github 工作流程示例 name Test Build on pull request types opened synchronize reo
  • Flutter 能否消除使用 Mac 创建 IOS 应用程序的需要?

    所以我想构建 Android 和 IOS 应用程序 有一天我发现了 flutter 我知道 IOS 需要 MacOS 但 flutter 可以在 Windows 上运行 我的问题是 我可以使用flutter在Windows计算机上开发和发布
  • 文件存在时 os.rename 不会引发 FileExistsError

    我有一个file rename我想通过一个简单的改进机制try except块将检查重命名的文件是否已存在于目录中 我在我的目录中准备了2个文件 data txt and old data txt 函数应该抛出异常 如下所示old data
  • LoadLibraryW() 无法加载 System32 中的 DLL

    我尝试使用以下代码加载 C Windows System32 文件夹中与打印机驱动程序一起安装的 DLL LoadLibraryW L C Windows System32 MagAPI dll GetLastError 报告 找不到指定的
  • 在没有 cron 的情况下在 AWS 中运行计划任务

    目前我在亚马逊有一台服务器 我把所有的 cronjobs 都放在里面 我想消除这个单点故障 并将所有任务公开为 Web 服务 我想将 VPC ELB 背后的服务公开给一些服务器 这些服务器将在调用时运行任务 Amazon AWS 是否提供某