我的目录结构包含不同的模块..
管理员, 应用程序编程接口(interface), 等等
我需要创建一个 cron 作业来处理更新 api 模块中引用的模型。
api 有自己的 yaml 文件:api.yaml
可以安全地假设我应该将 cron.yaml 放在与 api.yaml 相同的位置吗?
//====== future 笔记
我通过以下步骤成功执行了一个简单的 cronjob
- cron.yaml 与 api.yaml 位于同一目录
- api.yaml 保持不变
- 我在routes.py中添加了新路由的条目:Route('/crontask', handlers.CronTaskHandler,methods=['GET'])
- 我在一个名为 cron_task_handler.py 的单独文件中创建了一个处理程序,其中包含包含 def get(self) 的 CronTaskHandler 类
- 我更新了处理程序目录 init.py 以包含 from cron_task_handler.py import CronTaskHandler,并将 CronTaskHandler 放入“全部”列表中。
- 我通过终端更新了 cron 任务,导航到包含 cron.yaml (api) 的目录并输入
appcfg.py -A <app_id> update_cron .
- 我运行了开发服务器
- 我在浏览器中访问了 localhost:something/crontask url
- 我导航到管理控制台,并在 cron jobs 链接下看到了我的 cron job。
cron.yaml
cron:
- description: something
url: /crontask
schedule: every 1 minutes
cron_task_handler.py
class CronTask(base_class):
def get(self):
print "hello, this is a cron job"
最佳答案
cron.yaml
配置是应用程序级配置,而不是模块配置。特定任务可能会根据 cron.yaml 和 dispatch.yaml 的内容定向到特定模块。
我会将其保留在应用程序的顶层,如 Module configuration doc 中的建议。 :
Optional application-level configuration files (dispatch.yaml, cron.yaml, index.yaml, and queue.yaml) are included in the top level app directory.
注意:在多模块应用中,您可能需要使用appcfg.py update_cron
作为某些/全部的常规appcfg.py更新
的模块可能不会更新cron.yaml
。
关于python - 谷歌应用程序引擎(gae),python - 将 cron 任务放在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33348035/