Я реализовал действие очереди задач для проекта Flask + GAE, с которым я играю, чтобы узнать больше о веб-разработчике Python, и я получаю следующую ошибку, и я не могу отслеживать любую информацию об этом.Ошибка очереди задач Google App Engine с использованием API Python
----------------------------------------
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'
----------------------------------------
У меня есть мнение, что принимает запрос POST с другой точкой зрения в моем приложении, и, насколько я могу сказать, что это делает всю обработку, что я ожидал, за исключением, что доходит до конца и плюет это вне. Я предполагаю, что это потому, что я вижу этот вывод в журнал devserver 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 материал является функция, которая выполняет некоторые данные через 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()
Любая помощь по решению этой проблемы будет принята с благодарностью.
Попробуйте использовать Python 2.5. –
Да, я заметил, что он использовал Python 2.7, так как я могу сказать dev_appserver.py Я хочу использовать (для exmample) python2.5 на моем Macbook? – GrumpyCanuck