gpt4 book ai didi

python - 设置 app.yaml url 处理程序时,如何将 url 格式化为脚本?

转载 作者:太空宇宙 更新时间:2023-11-03 17:40:31 25 4
gpt4 key购买 nike

我不确定如何在 app.yaml 中设置处理程序脚本的 url。我尝试按照文档( https://cloud.google.com/appengine/docs/python/config/cron )设置 cron 作业,但我的 cron 在 GAE 中失败。我也收到此错误:\myproject\app.yaml:无法使用 CGI 处理程序启用线程安全:myprojectApp/dsProcess.aggregate

我认为文档假设我没有使用 WSGI,但我对 WSGI 的使用在某种程度上影响了应用程序中脚本的访问方式。

这是我的项目结构以及相关文件:

myproject/
myproject/ (package for project)
urls.py (defers url handling to myprojectApp.urls)
myprojectApp/ (package for actual app)
urls.py
dsProcess.py ( contains the aggregate function my cron should call)
app.yaml
cron.yaml
main.py

在 app.yaml 中,我不确定如何将 url 格式化为 dsProcess.py 的聚合函数:

app.yaml

handlers:
- url: /aggDB
script: myprojectApp/dsProcess.aggregate <-- unsure here

应该是 myprojectApp.dsProcess.aggregate 吗?myprojectApp.dsProcess.aggregate.pymyprojectApp.dsProcess.aggregate.app

我正在运行 Python 2.7.9

cron.yaml

cron:
- description: aggregates db
url: /aggDB
schedule: every 1 mins

ma​​in.py

import django.core.handlers.wsgi    
application = django.core.handlers.wsgi.WSGIHandler()

myprojectApp/dsProcess.py

def aggregate():

myproject/urls.pymyprojectApp/urls.py

我猜我不需要在这些中为将要命中的 aggDB/ url 设置 url 模式,因为 app.yaml 将注册并帮我听一下那个 url 模式。这是正确的吗?

尽管如此,这里有两个 urls.py:

myproject/urls.py

urlpatterns = patterns('',
(r'^', include('myprojectApp.urls')),
)

myprojectApp/urls.py

urlpatterns = patterns('',
...
#don't need to handle this here, let app.yaml handle it?
# (r'^aggDB/$', dsProcess.aggDStoJSON()),
)

使用 wsgi 会影响我访问脚本的方式吗?如果是这样,如何以及为什么?

最佳答案

这是一个 Python 路径,您使用点而不是斜杠。

但是 cron URL 没有什么特别之处:它们与项目中的任何其他 URL 完全相同,并且遵循完全相同的规则。如果您希望它由 Django 处理,则根本不需要在 app.yaml 中添加特定条目,只需让它使用其余 Django URL 的现有映射即可。

关于python - 设置 app.yaml url 处理程序时,如何将 url 格式化为脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30632528/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com