python - 谷歌应用程序引擎(gae),python - 将 cron 任务放在哪里?

标签 python google-app-engine cron

我的目录结构包含不同的模块..

管理员, 应用程序编程接口(interface), 等等

我需要创建一个 cron 作业来处理更新 api 模块中引用的模型。

api 有自己的 yaml 文件:api.yaml

可以安全地假设我应该将 cron.yaml 放在与 api.yaml 相同的位置吗?

//====== future 笔记

我通过以下步骤成功执行了一个简单的 cronjob

  1. cron.yaml 与 api.yaml 位于同一目录
  2. api.yaml 保持不变
  3. 我在routes.py中添加了新路由的条目:Route('/crontask', handlers.CronTaskHandler,methods=['GET'])
  4. 我在一个名为 cron_task_handler.py 的单独文件中创建了一个处理程序,其中包含包含 def get(self) 的 CronTaskHandler 类
  5. 我更新了处理程序目录 init.py 以包含 from cron_task_handler.py import CronTaskHandler,并将 CronTaskHandler 放入“全部”列表中。
  6. 我通过终端更新了 cron 任务,导航到包含 cron.yaml (api) 的目录并输入 appcfg.py -A <app_id> update_cron .
  7. 我运行了开发服务器
  8. 我在浏览器中访问了 localhost:something/crontask url
  9. 我导航到管理控制台,并在 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/

相关文章:

bash - ssh-agent 和 crontab —— 有什么好的方法可以满足它们的要求吗?

python - 关于 GAE 的 20 个预定职位限制

python - 计算包含范围内所有值的函数?

node.js - 将 Google 推送通知结果设置为错误 401 未经授权的 WebHook 回调 channel

java - 在谷歌应用引擎上保存长文本

google-app-engine - 节奏模板引擎和GAE

python - 在树莓派2上的临时文件中读取图像

python - 初学者得到 ValueError

Python pandas dataframe-从标题中删除列

php - 当 PHP 脚本通过/user/bin/php 运行时,Error_log 不起作用