我在CloudFoundry中有几个Python应用程序。现在我想安排他们的执行。例如,一个特定的应用程序必须在每个月的第二天执行。 我在网上找不到任何东西。这甚至有可能吗?如何在CloudFoundry中添加cron作业
回答
Cloud Foundry会将您的应用程序部署在容器中。您可以使用库在特定的时间表上执行您的代码,但是您支付的任何方式都可以让该实例一直运行。
什么你想要做的是“serverless computing”(也称为“事件驱动”或“功能作为服务”的计算。
这些部署技术的响应执行功能的完美人选触发例如REST API调用,一个时间戳,一个新的数据库插入等等
你可以使用Openwhisk无服务器计算平台执行Python Cloud Foundry的应用程序。
IBM提供这种运行的一个托管版本在他们的云平台上,Bluemix。
我不知道你的代码是什么样子,所以我会用这个样本的Hello World功能:
import sys
def main(dict):
if 'message' in dict:
name = dict['message']
else:
name = 'stranger'
greeting = 'Hello ' + name + '!'
print(greeting)
return {'greeting':greeting}
您可以使用上传您的行为(函数)OpenWhisk要么online editor或CLI。
一旦你已经上传你的动作,你可以通过使用报警包在特定的时间表上自动执行它们。要在在线编辑器中执行此操作,请单击“自动执行此过程”并选择警报程序包。 要通过我们首先需要创建一个触发CLI做到这一点:
$ wsk trigger create regular_hello_world --feed /whisk.system/alarms/alarm -p cron '0 0 9 * * *'
ok: created trigger feed regular_hello_world
这每天都会触发上午9点。然后,我们需要创建一个规则,这个触发链接到我们的行动:
$ wsk rule create regular_hello_rule regular_hello_world hello_world
ok: created rule regular_hello_rule
欲了解更多信息请参阅docs on creating python actions.
的CloudFoundry平台本身不具备调度(至少不会在这个时候)和运行应用程序的容器没有安装cron(不太可能发生)。
如果您想安排代码定期运行,您有几个选项。
您可以部署包含调度程序的应用程序。调度程序可以直接在该容器中运行代码,也可以触发代码在其他地方运行(例如,它向另一个应用程序发送HTTP请求,并且该请求触发代码运行)。如果您触发代码在其他地方运行,则可以使调度程序应用程序非常精简(可能具有64m或更少的内存)以降低成本。
您可以查找第三方调度程序服务。像这样的服务的可用性和成本将取决于您的CF提供商,但有服务产品来处理计划。这些功能通常与前一个示例的功能相同,即在特定时间将HTTP请求发送到您的应用程序,并触发您的计划代码。许多服务提供商提供免费套餐,每月免费提供少量触发器。
如果你有一台服务器安装了cron的CF之外,你可以使用cron有安排的任务,并触发代码在运行CF.您可以通过向您的应用发送HTTP请求来像前面的示例一样执行此操作,但是,此选项还可以让您使用CloudFoundry的任务功能。
CloudFoundry有一个任务的概念,它是一次性执行一些代码。有了它,您可以执行cf run-task
命令来触发任务运行。例如:cf run-task <app-name> "python my-task.py"
。关于文档中的更多内容,here。关于使用任务的好处在于,您的提供者只会在任务运行时向您收费。
要查看您的提供商是否有可用任务,请运行cf feature-flags
并查看task_creation
是否设置为enabled
。
希望有帮助!
- 1. 如何在linux中添加cron作业
- 2. 在CakePHP中添加Cron作业
- 3. 动态添加cron作业
- 4. 如何在cron作业中加载xml
- 5. 使用PHP添加/删除cron作业
- 6. 在cron作业
- 7. 在cron作业
- 8. 如何在PHP中设置CRON作业
- 9. 如何在Windows中使用Cron作业?
- 10. 如何在yii中设置cron作业
- 11. 如何在wordpress中调试cron作业
- 12. 如何在php中运行cron作业
- 13. 如何使用cron作业?
- 14. 如何使用cron作业
- 15. 如何测试cron作业?
- 16. 如何设置Cron作业?
- 17. 如何将睡眠设置添加到cron作业
- 18. 如何使用php添加多个cron作业?
- 19. 如何从Php脚本管理和添加Cron作业?
- 20. 如何添加选定时间的cron作业
- 21. 如何添加一个cron作业来运行php脚本
- 22. 需要在cron作业中添加mysql查询
- 23. cron作业中GOLANG
- 24. PHP在cron作业
- 25. Cron作业在Heroku
- 26. 如何注销AppEngine中的CRON作业?
- 27. 如何在CentOS上设置cron作业
- 28. 如何在另一个cron作业完成时运行cron作业?
- 29. cron作业windows
- 30. Ubuntu cron作业
感谢您的回答。你有第三方调度程序的例子吗?谢谢。 – user3080315
我在PWS上使用过这项服务:https://docs.run.pivotal.io/marketplace/services/temporize.html –