Атрибуты экземпляра не сохраняются при использовании многопроцессорной обработки

Лучшее решение старого вопроса:

def do_POST(self):
    length = int(self.headers.getheader('content-length'))
    field_data = self.rfile.read(length)
    fields = urlparse.parse_qs(field_data)

Это приведет к вытаскиванию urlencoded POST-данных из содержимого документа и анализу его dict с надлежащей кодировкой url

1
задан Le Chase 20 March 2019 в 15:49
поделиться

1 ответ

Вот пример кода, показывающий, как сделать то, что я изложил в комментарии. Я не могу проверить это, потому что у меня не установлено provider или pathos, но это должно дать вам хорошее представление о том, что я предложил.

import importlib
from pathos.helpers import mp
from provider import Provider

def process_data(loc):
    module  = importlib.import_module(loc)
    provider_obj = Provider(module)
    provider_obj.data_processing_func()


if __name__ == '__main__':

    # list of data providers ... length is arbitrary
    operating_providers = ['dataprovider1', 'dataprovider2', 'dataprovider3']

    # create list of provider locations for each operating provider
    provider_loc_list = []
    for name in operating_providers:
        loc = 'providers.%s' % name
        provider_loc_list.append(loc)

    processes = []
    for loc in provider_loc_list:
        process = mp.Process(target=process_data, args=(loc,))
        process.daemon = True
        process.start()
        processes.append(process)

    for process in processes:
        process.join()
0
ответ дан martineau 20 March 2019 в 15:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: