Ruby Rufus调度程序在多少线程之后阻塞?
在rufus中编写调度程序,其中调度的任务将重叠。这是预期的行为,但很好奇鲁弗斯是如何处理重叠的。它会重叠到n个线程,然后从那里阻塞吗?或者它继续重叠,而不关心一次运行多少并发任务 理想情况下,我希望利用rufus并发性,而不必管理自己的托管线程池。希望在达到最大池数后阻止Ruby Rufus调度程序在多少线程之后阻塞?,ruby,multithreading,rufus-scheduler,Ruby,Multithreading,Rufus Scheduler,在rufus中编写调度程序,其中调度的任务将重叠。这是预期的行为,但很好奇鲁弗斯是如何处理重叠的。它会重叠到n个线程,然后从那里阻塞吗?或者它继续重叠,而不关心一次运行多少并发任务 理想情况下,我希望利用rufus并发性,而不必管理自己的托管线程池。希望在达到最大池数后阻止 scheduler = Rufus::Scheduler.new # Syncs one tenant in every call. Overlapping calls will allow for multiple #
scheduler = Rufus::Scheduler.new
# Syncs one tenant in every call. Overlapping calls will allow for multiple
# syncs to occur until all threads expended, then blocks until a thread is available.
scheduler.every '30s', SingleTenantSyncHandler
编辑
从中可以看出,rufus在3.x版中确实使用了线程池。
您可以设置最大线程数,如下所示:
scheduler = Rufus::Scheduler.new(:max_work_threads => 77)
假设这回答了我的问题,但仍希望得到其他人的确认。是的,我确认,回答了您的问题。请注意,此线程池在rufus调度程序实例中的所有调度作业之间共享