Python 如何在CloudFoundry中添加cron作业
我在CloudFoundry中有几个Python应用程序。现在我想安排他们的执行时间。例如,一个特定的应用程序必须在每个月的第二天执行。Python 如何在CloudFoundry中添加cron作业,python,cloud-foundry,Python,Cloud Foundry,我在CloudFoundry中有几个Python应用程序。现在我想安排他们的执行时间。例如,一个特定的应用程序必须在每个月的第二天执行。 我在网上找不到任何东西。这可能吗?CloudFoundry将在容器中部署您的应用程序。您可以使用库按照特定的时间表执行代码,但无论哪种方式,您都需要花钱让该实例一直运行 您试图做的是一个完美的“”(也称为“事件驱动”或“功能即服务”计算)候选对象 这些部署技术在响应触发器时执行功能,例如REST api调用、特定时间戳、新的数据库插入等 您可以使用无服务器计算
我在网上找不到任何东西。这可能吗?CloudFoundry将在容器中部署您的应用程序。您可以使用库按照特定的时间表执行代码,但无论哪种方式,您都需要花钱让该实例一直运行 您试图做的是一个完美的“”(也称为“事件驱动”或“功能即服务”计算)候选对象 这些部署技术在响应触发器时执行功能,例如REST api调用、特定时间戳、新的数据库插入等 您可以使用无服务器计算平台执行python cloud foundry应用程序 IBM提供了一个在其云平台上运行的托管版本 我不知道您的代码是什么样子,因此我将使用以下示例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
上传操作后,您可以使用报警包按照特定计划自动执行操作。要在联机编辑器中执行此操作,请单击“自动执行此过程”,然后选择报警包。
要通过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
有关更多信息,请参见CloudFoundry平台本身没有调度器(至少目前没有),并且您运行应用程序的容器没有安装cron(不太可能发生) 如果您想安排代码定期运行,您有几个选项
- 您可以部署包含调度器的应用程序。调度器可以直接在该容器中运行代码,也可以触发代码在其他位置运行(例如:它向另一个应用程序发送HTTP请求,该请求触发代码运行)。如果您触发代码在其他地方运行,您可以使调度程序应用程序运行得非常精简(可能内存为64m或更少),以降低成本
- 您可以查找第三方计划程序服务。此类服务的可用性和成本将因您的CF提供商而异,但有一些服务可用于处理计划。这些服务的功能通常与上一个示例类似,其中HTTP请求在特定时间发送到您的应用程序,并触发您的计划许多服务提供商提供免费的分层服务,每月免费为您提供少量触发器
- 如果您在CF之外安装了cron的服务器,您可以在那里使用cron来安排任务并触发代码在CF上运行。您可以像前面的示例一样,通过向应用程序发送HTTP请求来执行此操作,但是,此选项还允许您使用CloudFoundry的任务功能
cf run task
命令来触发任务运行。例如:cf run task。使用任务的好处在于,您的提供商只会在任务运行时向您计费
要查看您的提供商是否有可用的任务,请运行cf feature flags
,并查看task\u creation
是否设置为enabled
希望能有所帮助!谢谢你的回答。你有第三方调度程序的例子吗?谢谢。我在PWS上使用过此服务: