Конвертировать Python2.6 в Google App Engine, совместимый (многопроцессорный) - PullRequest
0 голосов
/ 16 мая 2011

Я сделал небольшой скрипт на Python, который использует многопроцессорность. Я думал о том, чтобы запустить его на Google App Engine как работу cron, но, к сожалению, Google App Engine не поддерживает многопроцессорность. Может ли кто-нибудь помочь мне преобразовать это в код, совместимый с Google App Engine (возможно, с помощью задач 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)

1 Ответ

5 голосов
/ 16 мая 2011

Посмотрите на очереди задач.

ca может вставить объем работы в очередь задач (=> Поток) и установить количество заданий в очереди, которые выполняются одновременно.

Взгляните сюда: http://code.google.com/intl/de-DE/appengine/docs/python/taskqueue/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...