Ошибка очереди задачи Engine Google с использованием Python API

StackOverflow https://stackoverflow.com/questions/4777046

Вопрос

Я реализовал действие очереди задач для проекта Flask + GAE, с которым я играю, чтобы узнать больше о Python Web Dev, и я получаю следующую ошибку, и я не могу отследить какую -либо информацию об этом.

----------------------------------------
Exception happened during processing of request from ('0.1.0.2', 80)
Traceback (most recent call last):
 File "/usr/local/Cellar/python/2.7.1/lib/python2.7/SocketServer.py", line 284, in    _handle_request_noblock
self.process_request(request, client_address)
File "/usr/local/Cellar/python/2.7.1/lib/python2.7/SocketServer.py", line 311, in process_request
self.shutdown_request(request)
File "/usr/local/Cellar/python/2.7.1/lib/python2.7/SocketServer.py", line 459, in    shutdown_request
request.shutdown(socket.SHUT_WR)
AttributeError: 'FakeConnection' object has no attribute 'shutdown'
----------------------------------------

У меня есть представление, которое принимает запрос на сообщение из другого представления в моем приложении, и, насколько я могу судить, он выполняет всю обработку, которую я ожидаю, за исключением того, что он доходит до конца, и выплевывает это. Я предполагаю это, потому что я вижу этот вывод в журнале Gae Devserver:

INFO     2011-01-23 21:41:16,865 dev_appserver.py:3317] "GET /main/new HTTP/1.1" 200 -
INFO     2011-01-23 21:41:23,753 dev_appserver.py:3317] "POST /main/new HTTP/1.1" 302 -
INFO     2011-01-23 21:41:24,528 dev_appserver.py:3317] "POST /tasks/check_for_spam HTTP/1.1" 200 -

Материал CHECK_FOR_SPAM - это функция, которая запускает некоторые данные через API DEFENSIO, чтобы определить, является ли это спамом или нет. Вот код

from google.appengine.api import taskqueue
from google.appengine.ext import db
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app

from application.models import LieModel
from defensio import *

class SpamChecker(webapp.RequestHandler):
    def post(self):
        id = self.request.get('id')
        client = Defensio('577709b41d42f2c34f80cd57d50333d6') 
        q = LieModel.all()
        q.filter("id = ", id)
        results = q.fetch(1)

        for result in results:
            title_doc = {'content': result.title, 'type': 'comment', 'platform':'python'}
            body_doc = {'content': result.body, 'type': 'comment', 'platform':'python'}
            title_status,title_response = client.post_document(title_doc)
            body_status,body_response = client.post_document(body_doc)
            lie_is_spam = False

            if title_status == 200 and title_response['defensio-result']['spaminess'] > 0.5:
                lie_is_spam = True

            if body_status == 200 and body_response['defensio-result']['spaminess'] > 0.5:
                lie_is_spam = True

            if lie_is_spam:
                lie_k = db.Key.from_path('Lie', id)
                lie = db.get(lie_k)
                lie.delete()


def main():
    run_wsgi_app(webapp.WSGIApplication([
        ('/tasks/check_for_spam', SpamChecker)
        ]))

if __name__ == '__main__':
    main()

Любая помощь в решении этой проблемы будет очень оценена.

Это было полезно?

Решение

Проблема ушла с предложением Роберта Клуина. Я запускаю сервер Dev, используя

python2.5 /usr/local/bin/dev_appserver.py .
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top