Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby Rufus调度程序在多少线程之后阻塞?_Ruby_Multithreading_Rufus Scheduler - Fatal编程技术网

Ruby 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 #

在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 
编辑 从中可以看出,rufus在3.x版中确实使用了线程池。 您可以设置最大线程数,如下所示:

scheduler = Rufus::Scheduler.new(:max_work_threads => 77)
假设这回答了我的问题,但仍希望得到其他人的确认。

是的,我确认,回答了您的问题。请注意,此线程池在rufus调度程序实例中的所有调度作业之间共享