假设客户对您创建脚本来完成收集一些信息并输出大量数据库文件的任务的工作感到满意。然后,他们有兴趣在没有人工干预的情况下定期(大约每月)运行该任务。客户端对在本地运行任务不感兴趣,因此您被迫寻找其他地方来执行此操作 - 听起来很做作,“在云中”。

您将使用哪些技术/服务来以低廉的成本完成此任务?

到目前为止我探索过的事情:

  • 亚马逊EC2. 。听起来是个好主意,但是没有明显的方法可以按计划停止和重新启动实例。每月支付 > 70 美元来保持实例运行 cron 但不做任何有用的事情似乎是一种浪费。
  • 硬着头皮付费购买虚拟专用服务器 (VPS)。不过,即使每月支付 20 美元(切片主机, ,例如)如果任务每个月只运行几个小时,那么似乎有点矫枉过正。
  • 共享托管帐户和 网络定时任务. 。看起来有点 MacGyverish,并且可能违反了许多共享托管服务的 ToS,这些服务通常不适合长时间运行的任务。

您有这些或任何其他选择的经验吗?

有帮助吗?

解决方案

我会使用亚马逊 EC2。只需启动一个实例,将脚本复制到该实例,将其添加到启动例程并将关闭附加到脚本末尾。将其捆绑到您自己的映像中并关闭实例。现在,您可以每月启动自己的映像,它将执行脚本并关闭。对于 m1.small 实例,您只需支付 10 美分/小时。

您只需要有人每月手动启动实例,或者让您的客户安装一个小型的每月 cronjob 来启动实例。

笔记:shutdown -h 是必需的,否则实例将重新启动而不是停止

其他提示

我会硬着头皮买一个 VPS,6 个月后你几乎肯定会发现你已经找到了它的更多用途。

我使用允许此操作的共享托管服务,并将其用于夜间同步。

在 EC2 上运行任务本身实际上听起来非常相关,但在 EC2 上运行 cron 本身确实是浪费。

我想不出如何在不属于你的机器上运行 cron。

您可以使用 http://guardiano.pm 然后,您可以创建一个作业并在需要时调用您的 api。Guradiano 将调用 your/api/dothat 并且应用程序将执行一些任务。确保安全的一种方法是随请求发送一些参数,并且仅当发送正确的参数时,您才会执行该操作。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top