При вызове многопроцессорной функции с расписанием она работает для MacOS, но не для Windows. Что мне не хватает? - PullRequest
0 голосов
/ 13 мая 2019

Я пытаюсь запланировать некоторые пакетные процессы в Python, используя расписание, содержащее многопроцессорность.Они продолжают висеть, поэтому я написал небольшую тестовую работу, ну тестируй.Однако я написал его на своем Mac, и он отлично работает, но когда я пытаюсь запустить его на ПК своей работы, он зависает.Когда я просто запускаю составные части, все они отлично работают в обеих системах.

Все Python 3.7, Mac был Sierra, ПК - Windows 10 Pro

''' This is the test process to schedule (saved as mp_lib) '''

import pandas as pd
import numpy as np
from multiprocessing import Pool

def parallelise(df, func):
    df_split = np.array_split(df, 2)
    pool = Pool(2)
    df = pd.concat(pool.map(func, df_split))
    pool.close()
    pool.join()
    return df

def parallel_func(df):
    df['Three'] = df['One'] + df['Two']
    return df

def run_job():
    df = pd.DataFrame([[1,2],[3,4],[5,6],[7,8]], columns=['One', 'Two'])
    df2 = parallelise(df, parallel_func)
    print(df2)


''' This is the scheduler '''

import schedule
import time
import mp_lib as mpl

def main():
    schedule.every(10).seconds.do(mpl.run_job)
    while True:
        schedule.run_pending()
        time.sleep(1)

if __name__ == "__main__":
    main()

Ожидается, что консоль будет выводить элементарные математические данные каждые 10 секунд, что она делает на Mac.В Windows консоль молчит, однако диспетчер задач показывает активные сеансы Python.

...