Fronta úloh Google App Engine Error pomocí Python API

hlasů
1

Jsem implementoval akce fronty úloha pro projekt Láhev + GAE hraju se dozvědět více o Python webové dev a já začínám následující chybu a nemohu vystopovat žádné informace o tom.

----------------------------------------
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'
----------------------------------------

Mám názor, že je přijímá žádosti o příspěvek z jiného pohledu v mé žádosti, a pokud mohu říct, že to dělá všechnu zpracování, které jsem očekával až se dostane až do konce a vyplivne to. Já to hádání, protože vidím, tento výstup v devserver protokolu GAE:

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 věci je funkce, která běží některá data prostřednictvím rozhraní API Defensio k určení, zda je spam nebo ne. Zde je kód

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()

Jakákoliv pomoc při řešení tohoto problému by bylo velmi ocenil.

Položena 23/01/2011 v 23:39
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
3

Problém odešel s Robertem Kluin jeho návrhem. Začínám nahoru dev serveru pomocí

python2.5 /usr/local/bin/dev_appserver.py .
Odpovězeno 26/01/2011 v 02:54
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more