Python调度,在p中执行任务

2024-04-25 22:42:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我已使用this计划任务:

if __name__ == '__main__':
    channel_crawler(priority=1)
    schedule.every(PRIORITY[1]["interval"]).minutes.do(channel_crawler, priority=1)

    schedule.every().day.at("17:30").do(distance_fixer)

    while True:
        schedule.run_pending()
        time.sleep(1)

channel_crawler大约需要5 minutes来运行,distance_fixer大约需要5 hours。当我在运行distance_fixer时运行我的代码,计划不会每10 minutes运行channel_crawler。如何并行运行我的函数?在


Tags: nameifmainchannelthisdo计划distance
1条回答
网友
1楼 · 发布于 2024-04-25 22:42:10

可以对作业使用多处理,因此每个进程都运行每个函数

def run_schedule():
    while True:
        schedule.run_pending()
        time.sleep(1)

def run_crawler_schedule():
    channel_crawler(priority=1)
    schedule.every(PRIORITY[1]["interval"]).minutes.do(channel_crawler, priority=1)
    run_schedule(schedule)

def run_fix():
    schedule.every().day.at("17:30").do(distance_fixer)
    run_schedule()


def run_job()
    p = Process(target=run_crawler_schedule)
    c = Process(target=run_fix)
    p.start()
    c.start()
    p.join()
    c.join()

if __name__ == "__main__":
    run_job()

相关问题 更多 >