【发布时间】:2020-10-10 09:13:56
【问题描述】:
我在python中使用APScheduler来调度任务,这些任务需要独立运行并与其他任务同时运行。
主要规则是这些任务必须在它们被安排的确切时间执行,并且不能因为另一个任务而被阻止或延迟执行。
这些任务是由我的应用程序的用户动态安排的。
为此,当任务执行时间到来时,我启动一个新的子流程来执行它:
def _initialize_order_process(user, order):
p = Process(target=do_scheduled_order, args=(user, order))
p.start()
p.join()
了解每个子进程都会启动与服务器的连接,这一点很重要。
我正在这样安排我的任务:
scheduler.add_job(_initialize_order_process, 'date', run_date=start_time, args=[user, order], id=job_id)
我的问题是同时调度大量任务时,由于进程数过多,导致服务器崩溃。
因此,我需要此应用程序具有可扩展性以支持许多用户。
有人知道如何为我的用例创建可扩展的解决方案吗?
【问题讨论】:
标签: python concurrency parallel-processing multiprocessing apscheduler