![](/img/trans.png)
[英]How can I make a cron.yaml file to run python script every hour for google cloud app engine
[英]Google Cloud App Engine Cron can't execute python script
我需要在基础架构中发布发布/订阅事件。 因此,我写了订阅主题scan-dead-locks的后台Google Cloud Function。 它将读取数据库并释放所有崩溃的未关闭的文档锁。 例如,应每20分钟定期执行此功能。 根据我的调查,App Engine的Cron服务无法直接触发发布/订阅事件。 我编写了应该执行此操作的python脚本(使用App Engine的示例),但是剩下的最后一个问题是在运行时找不到库。 所以,我有这个错误。
和这个文件。
app.yaml
runtime: python27
threadsafe: no
handlers:
- url: /trigger-scan-dead-locks
script: trigger-scan-dead-locks.py
login: admin
appengine_config.py
from google.appengine.ext import vendor
vendor.add('lib')
cron.yaml
cron:
- description: scan for dead locks and release locks
url: /trigger-scan-dead-locks
schedule: every 20 mins
触发扫描死锁.py
from apiclient import discovery
pubsub = discovery.build('pubsub', 'v1')
pubsub.projects().topics().publish(topic="scan-dead-locks").execute()
示例来自此处https://github.com/GoogleCloudPlatform/reliable-task-scheduling-compute-engine-sample 。 也许可以解决此问题的一般性问题是,库在这里是如何管理的(我已经阅读过文档,但这并没有真正的帮助)? 我也from google.cloud import pubsub
库声明中找到了另一个示例,但是由于缺少库,它也没有用。
听起来您的lib
目录中没有googleapiclient。
几件事情:
1)尝试from googleapiclient import discovery
<-较新的版本
2) $ cd
到您的项目目录,然后$ pip install -t lib google-api-python-client
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.