bluemix上的python调度程序

时间:2017-12-08 06:16:32

标签: python-3.x ibm-cloud openwhisk ibm-cloud-functions

我在python中使用schedule包,每15秒调用一次函数,并希望在IBM Bluemix上运行此代码。 使用-no-route选项将应用程序推送到Bluemix,虽然应用程序部署到Bluemix,但Bluemix无法启动应用程序

以下是我尝试过的示例代码

import schedule
import time

def printMyName():
    print("NAME...")

schedule.every(15).seconds.do(printMyName)


while 1:
   schedule.run_pending()
   time.sleep(10)

此应用程序的Bluemix日志中的消息:

Destroying container
Successfully destroyed container

0 of 1 instances running, 1 starting
0 of 1 instances running, 1 starting
0 of 1 instances running, 1 starting
0 of 1 instances running, 1 starting
0 of 1 instances running, 1 starting

过了一会儿,我在日志中看到了这条消息

ERR Timed out after 1m0s: health check never passed.

Python版本:3.4.4

2 个答案:

答案 0 :(得分:1)

我已完成something similar with schedule a while back并且有效。让no-route option set in the manifest为我做了诀窍。

今天,我建议您查看IBM Cloud Functions / OpenWhisk和alarm packageIBM Cloud Functions allows actions to be written in Python。通过警报,您可以以类似cron的方式调用这些Python函数 - 并且可能成本更低。

答案 1 :(得分:1)

我通过设置

让我的调度程序工作
health-check-type: process

关于此的云代工文档在这里:https://docs.cloudfoundry.org/devguide/deploy-apps/healthchecks.html#types

我的项目在这里:https://github.com/snowch/bluemix_retail_demo/tree/master/messagehub2elasticsearch/purge_old_indices