App Engine Python模块和入站邮件服务

我在我的python项目中使用App Engine模块。 (https://developers.google.com/appengine/docs/python/modules/#Python_Background_threads)

我还在m项目中接收电子邮件:https://developers.google.com/appengine/docs/python/mail/receivingmail

我想将电子邮件发送到我的工作者模块而不是默认模块。 为此,我的worker.yaml具有以下设置

worker.yaml

    api_version: 1
    application: integrate
    module: worker
    version: 1-0-0
    runtime: python27
    threadsafe: true

    inbound_services:
    - mail

    builtins:
    - deferred: on

    handlers:

    - url: /admin/.+
      script: src.worker.main.app
      login: admin

    - url: /_ah/mail/.+
      script: src.worker.main.app
      login: admin

    - url: /.*
      script: src.worker.main.app

的app.yaml

    api_version: 1
    application: integrate
    version: 1-0-0
    runtime: python27
    threadsafe: true

    builtins:
    - deferred: on

    handlers:

    - url: /admin/.+
      script: src.default.main.app
      login: admin

    - url: /.*
      script: src.default.main.app

我甚至尝试添加一个dispatch.yaml

    application: integrate

    dispatch:
    - url: "*/_ah/mail/.+"
      module: worker

但不管我做什么,到达我的应用程序的电子邮件都由默认模块处理。 任何想法我在这里失踪? 我看到电子邮件进入,但不管我做什么,他们只会去默认模块。


入站服务只能在默认模块中使用,这是预期的行为。 事实上,它在本地在devserver中适用于你,实际上是一个错误。


只是一些额外的信息可以帮助人们在类似的情况下得到答案。

我在DevServer日志中注意到:

“跳过dispatch.yaml规则,因为/ _ah / mail / [EMAIL_ADDRESS_FOR_APP]不是可调度路径。”

但是,这无疑是由于本地配置。

无论如何,我现在使用任务的解决方法是:

  • 在默认模块中派遣或直接处理入站邮件
  • 提供一个脚本处理程序,它创建一个Task,并将相关的MailMessage数据作为有效负载
  • 将queue.yaml中的T​​askQueue设置为目标您希望处理有效载荷数据的模块,例如'worker'模块
  • 链接地址: http://www.djcxy.com/p/16311.html

    上一篇: App Engine Python Modules and inbound mail service

    下一篇: readRDS() loads extra packages