首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >任务队列错误

任务队列错误
EN

Stack Overflow用户
提问于 2015-11-07 06:25:47
回答 2查看 270关注 0票数 0

我正在开发一个有盖和蟒蛇的婚介系统。我找到了一个一致的自动匹配系统,并找到了任务队列。我实现了一个cron作业,每10分钟运行一次以添加一个队列。但是,我得到了以下错误:

代码语言:javascript
复制
When running /queue_generator:
Traceback (most recent call last):
File"/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 267, in Handle
    result = handler(dict(self._environ), self._StartResponse)
TypeError: 'module' object is not callable

我拥有的代码是:(SessionID只是db模型) queue_generator.py

代码语言:javascript
复制
import webapp2, time
from main import SessionID
from google.appengine.api import taskqueue
from google.appengine.ext import db

class Game(db.Model):
    Users = db.ListProperty(str)
    Score = db.IntegerProperty()
    Turn = db.StringProperty()
class MainHandler(webapp2.RequestHandler):
    def get(self):
        taskqueue.add(url='/matchcreator',params={"id":str(time.time())})

class Gamegenerator(webapp2.RequestHandler):
    def get(self):
        while True:
            q = Queue.get()
           if len(q.queue) >= 4:
                sids = []
                for i in range(0,3):
                    sids.append(q.queue[i])
                    q.queue.remove(i)
                    q.put()
        return self.response.set_status(204)
    def post(self):
        while True:
            q = Queue.get()
        if len(q.queue) >= 4:
            sids = []
            for i in range(0,3):
                sids.append(q.queue[i])
                q.queue.remove(i)
                q.put()
    return self.response.set_status(204)

app = webapp2.WSGIApplication([
    ('/queue_generator', MainHandler),
    ("/matchcreator",Gamegenerator)
], debug=True)

为什么会发生这样的错误?

编辑

app.yaml

代码语言:javascript
复制
application: brobbinsgame
version: 1
runtime: python27
api_version: 1
threadsafe: yes

handlers:
- url: /favicon\.ico
  static_files: favicon.ico
  upload: favicon\.ico
- url: /css
  static_dir: css
- url: /home.css
  static_files: style.css
  upload: style.css
  application_readable: true
- url: /register
  script: register.app
- url: /logout
  script: logout.app
- url: /line
  script: line.app

- url: /queue_generator
  script: queue_generator
  login: admin
- url: /home
  script: home.app
- url: /resetsid
  script: resetsid.app
  login: admin
- url: .*
  script: main.app

libraries:
- name: webapp2
  version: "2.5.2"
- name: pycrypto
  version: "latest"
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-11-11 09:17:20

对于除"/queue_generator“之外的每一条路径,您都正确地引用了app对象。但是对于这一条路径,直接引用模块。您需要以完全相同的方式定义它:

代码语言:javascript
复制
- url: /queue_generator
  script: queue_generator.app
  login: admin

还请注意,没有办法到达"/matchcreator":"/queue_generator“是唯一将被路由到该文件的URL。您也需要在/matchcreator中公开“app.yaml”,或者做更常见的事情,即将所有路径路由到一个主应用程序,该应用程序导入所有处理程序,并在其中定义特定的路由。

票数 1
EN

Stack Overflow用户

发布于 2015-11-07 09:55:39

发生此错误是因为您调用的是模块而不是类。调用应该是: Module.Class.Method()

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33579853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档