404来自谷歌应用引擎django应用程序的cron作业

Posted

技术标签:

【中文标题】404来自谷歌应用引擎django应用程序的cron作业【英文标题】:404 from cron job on google app engine django app 【发布时间】:2018-01-28 07:52:30 【问题描述】:

所以,其他一切都有效......作为序言。但是,我并没有真正移出管理界面。如果有更改,我正在尝试从 API 获取数据并将其插入数据库。我已经设法编写了一个可以做到这一点的脚本(理论上......它可以在本地完成),但我无法让云中的应用程序识别它的存在。我已经按照 Google 的建议将其添加到 app.yaml 和 cron.yaml 中,但无济于事。

我需要将它添加到 urls.py 中吗?到目前为止,我还没有处理过任何处理程序,我不确定 settings.py 会发生什么,yaml 文件会发生什么,以及其中有多少是精灵尘埃。

这里是相关文件... app.yaml

runtime: python
env: flex
entrypoint: gunicorn -b :$PORT mysite.wsgi
threadsafe: yes

beta_settings:
    cloud_sql_instances: [redacted]

runtime_config:
  python_version: 3

health_check:
  enable_health_check: False

handlers:
- url: /static
  static_dir: static/
- url: /run/get_data/
  script: JSONdownload.app
  login: admin
- url: .*
  script: mysite.wsgi.application

cron.yaml

cron:
- description: "get data"
  url: /run/get_data/
  schedule: every 5 minutes

JSONdownload.py

#!/usr/bin/env python
# /var/spool/cron/crontabs
import json
import urllib2

from django.http import HttpResponse
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app

from .models import Game
from .models import Team


class JSONdownloadHandler(webapp.RequestHandler):
    def get(self):
        self.response.write('cron')
class MainHandler(webapp.RequestHandler):
    def get(self):
        self.response.write('yay')

我正在为一个基本的 python 应用程序找到很好的资源......但对于这种情况真的没有......任何人都知道比我正在做的更好的事情,请告诉我!

【问题讨论】:

你有JSONdownload.app吗? 我有一个 JSONdownload.py - 我已经移动了一些东西,我至少可以从一个视图调用和运行脚本...我在想接下来我应该应该 可以从 cron 调用吗?如果我能做到? 【参考方案1】:

所以...是我没有路由到这个位置。我实际上能够为 URL 设置一个路由(使用管理员),然后能够通过 cron.yaml 调用它。

【讨论】:

【参考方案2】:

您将flexible environment app.yaml 的元素与standard environment app.yaml 的元素混为一谈

特别是script: JSONdownload.app 部分被忽略。您需要为/run/get_data/ 路径inside 添加处理程序,您的mysite.wsgi 应用程序可能会从那里调用JSONdownload.py 代码。

不知何故相关:cron job in google app engine not working。

【讨论】:

以上是关于404来自谷歌应用引擎django应用程序的cron作业的主要内容,如果未能解决你的问题,请参考以下文章

Django没有在404页面上应用来自应用程序的CSS文件

谷歌应用引擎+python(django)部署错误:加载MySQLdb模块时出错

来自 mandrill 的 ValidationError 与谷歌应用引擎的 urlfetch

如何在谷歌应用引擎上将帖子从数据库异步加载到 django 模板?

谷歌应用引擎 python 日志级别降噪

上传文件 POST url 在部署时引发 404