Rufus Scheduler阻塞了多少个线程?

时间:2015-09-14 13:01:05

标签: ruby multithreading rufus-scheduler

在rufus中编写调度程序,其中计划任务将重叠。这是预期的行为,但很好奇rufus如何处理重叠。它会重叠到n个线程然后从那里阻塞吗?或者它是否继续重叠而不关心一次运行多少并发任务。

理想情况下,我想利用rufus并发,而不必管理自己的托管线程池。我想在达到最大池数后阻止。

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 

修改README看,rufus确实在版本3.x中使用了线程池。 您可以设置最大线程数,如:

scheduler = Rufus::Scheduler.new(:max_work_threads => 77)

假设这回答了我的问题,但仍希望得到其他人的确认。

1 个答案:

答案 0 :(得分:1)

是的,我确认,https://github.com/jmettraux/rufus-scheduler/#max_work_threads回答了您的问题。请注意,此线程池在rufus-scheduler实例中的所有预定作业之间共享。