我有一个10行的小python脚本,我想每天在某个时间运行一次。
我想在凌晨3点运行它,所以我想远程运行它。
目前,我正在考虑在AWS上运行EC2实例,但对于手头的任务来说,这似乎有点乏味。
有人有类似的经历吗?如果有,对你来说什么是最好的选择。
我正在使用macOS。
您应该使用AWS Lambda,它可以使用Cloudwatch触发,也可以使用cron进行调度。查看cloudwatch规则。您可以创建一个规则,然后在此基础上将触发器添加到lambda中。AWS文档。
另一种选择:
如果你仍然想使用EC2,那么使用一个微实例来执行你的任务,在你的EC2中添加一个cron作业。根据需要使用EC2实例调度程序来启动和停止实例。因此,当您需要EC2时,您将只使用它们。有关自动基于时间的弹性的更多AWS文档,请参阅此处。
如果脚本运行时间不到15分钟,您可以:
- 使用脚本创建AWS Lambda函数
- 配置Amazon CloudWatch事件以按计划触发Lambda函数
请参阅:创建按时间表触发的CloudWatch事件规则-Amazon CloudWatch事件
您可以在循环中添加time.sleep(86400(来运行它一次。例如:
import time
while True:
your_basic_code
time.sleep(86400)
如果你的代码不耗时,而且你对时间准确性不感兴趣(如果你可以在凌晨03:01,例如第10天,等等(,这是一个很好的解决方案。还有其他更准确的解决方案,将在03:00 运行代码