Convertir Python2.6 a compatible con Google App Engine (multiprocesamiento)

Hice un pequeño script en Python que usa multiprocesamiento. Pensé en ejecutarlo en Google App Engine como un trabajo cron, pero desafortunadamente Google App Engine no es compatible con el multiprocesamiento. ¿Alguien puede ayudarme a convertir esto en un código compatible con Google App Engine (tal vez usando tareas de Google App Engine?)?

from multiprocessing import Pool
import MySQLdb
import urllib;
import urllib2;

def f(email_url):
    url = "http://my-domain.com/cron.php"
    values = { "email" : email_url[0], "url" : email_url[1] }
    data = urllib.urlencode(values)
    req = urllib2.Request(url, data)
    urllib2.urlopen(req)

if __name__ == '__main__':
    p = Pool()
    emails_urls = list()
    conn = MySQLdb.connect(host = "XXX.XXX.XXX.XXX", user = "USERNAME",
                           passwd = "PASSWORD", db = "MY-DATABASE")
    cursor = conn.cursor()
    cursor.execute ("SELECT email, url FROM data")
    rows = cursor.fetchall()
    for row in rows:
        emails_urls.append((row[0], row[1]))
    cursor.close()
    conn.close()

    p.map(f, emails_urls)

preguntado el 16 de mayo de 11 a las 18:05

1 Respuestas

Eche un vistazo a las colas de tareas.

ca puede insertar una cantidad de trabajo en una cola de tareas (=> subproceso) y establecer el número de trabajos en una cola que se ejecutan simultáneamente.

Echa un vistazo aquí: http://code.google.com/intl/de-DE/appengine/docs/python/taskqueue/

contestado el 16 de mayo de 11 a las 23:05

La biblioteca diferida, que es una envoltura de las colas de tareas, encajaría aún mejor con la funcionalidad actual de este script. code.google.com/appengine/articles/deferred.html - Calvin

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.