2

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

您将使用哪些技术/服务来廉价地完成此任务?

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

  • 亚马逊 EC2。听起来是个好主意,但没有明显的方法可以按计划停止和重新启动实例。每月支付超过 70 美元来保持实例运行 cron 但没有做任何有用的事情似乎是一种浪费。
  • 咬紧牙关,为虚拟专用服务器 (VPS) 付费。但是,如果该任务每个月只运行几个小时,即使每月支付 20 美元(例如Slicehost)似乎也有点过头了。
  • 共享主机帐户和WebCron。似乎有点 MacGyverish 并且可能违反了许多共享托管服务的 ToS,这些服务通常不适合长时间运行的任务。

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

4

4 回答 4

7

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

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

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

于 2009-01-09T06:33:50.423 回答
1

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

我使用允许这样做的共享托管服务,并将其用于夜间同步。

于 2009-01-09T06:49:15.353 回答
0

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

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

于 2009-01-09T06:42:26.680 回答
0

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

于 2015-07-02T10:03:08.667 回答