【问题标题】:Python CRON google flexible app engine not workingPython CRON 谷歌灵活应用引擎不工作
【发布时间】:2019-08-02 13:36:18
【问题描述】:

我有以下cron.yaml

cron:
- description: "TEST_TEST_TEST"
- url: /cronBatchClean
- schedule: every 2 minutes

然后在app.yaml:

service: environ-flexible
runtime: python
env: flex
entrypoint: gunicorn -b :$PORT main:app

runtime_config:
  python_version: 3

以此为main.py:

from flask import Flask, request
import sys

app = Flask(__name__)

@app.route('/cronBatchClean')
def cronBatchClean():
   print("CRON_CHECK", file=sys.stderr)
   return "CRON_CHECK"

当我输入完整的 URL 时,我在屏幕上收到“CRON_CHECK”,但这似乎没有执行。同样在 App Engine 仪表板中,当我单击 CRON 作业时,没有列出任何作业。

任何帮助执行此操作将不胜感激,

谢谢:)

编辑 1

我现在正在执行 cron 任务,但我收到了 404 错误。当我输入完整的 URL(即 https://.appspot.com/cronBatchClean)时,相应的代码就会执行。

我添加了一个GET 处理程序,但我仍然没有收到任何运气。

@app.route('/cronBatchClean', methods=['GET'])
def cronBatchClean():

   print("CRON_JOB_PRINT", file=sys.stderr)

   return "CRON_CHECK"

【问题讨论】:

  • 你部署了你的cron.yaml
  • @skaul05 是的,我有
  • 检查您的 default 服务日志 - 您看到那里有 /cronBatchClean 请求吗?
  • 当我调用 url 时它可以工作,但没有 CRON 任务执行 @DanCornilescu

标签: python-3.x google-app-engine google-cloud-platform cron app-engine-flexible


【解决方案1】:

cron.yaml 中有不必要的“-”字符,它们是新列表的开始。 YAML Syntax

Cron 作业cron.yamlsee Google Cloud documentation 的正确格式:

cron: 
- description: "TEST_TEST_TEST" 
  url: /cronBatchClean 
  schedule: every 2 minutes

要部署 Cron 作业,请使用 gcloud command

$ gcloud app deploy cron.yaml

【讨论】:

  • 还是没有运气。应用引擎下没有列出 CRON 作业。
  • 如果 cron 作业未列出,则说明未正确部署。你是如何部署它的?
【解决方案2】:

为了解决这个问题,我将服务名称更改为默认值,然后我使用默认服务部署 cron 作业任务路径指向应用程序引擎的默认路径,以便在计划任务时引发 404 错误,因为服务名称设置为“环境灵活”时路径不匹配

在 app.yaml 中

改变:

service: environ-flexible

service: default

【讨论】:

    猜你喜欢
    • 2016-08-01
    • 2011-08-21
    • 1970-01-01
    • 2014-03-22
    • 2012-06-12
    • 2023-03-12
    • 1970-01-01
    • 2013-01-01
    • 1970-01-01
    相关资源
    最近更新 更多