繁体   English   中英

TaskScheduler仍需要处理的任务数

[英]TaskScheduler Number of tasks that still need to be processed

我有一个服务器池,用于负载平衡某些工作。 这项工作被划分为离散的工作项,但是无法确定给定工作项将花费多少时间。

每个服务器使用TPL安排工作项的工作。 为了真正实现工作的负载平衡,我需要能够确定每台服务器有多少待处理的工作项。

我需要做的就是获取默认TaskScheduler的计划工作项目数。 理想情况下,我可以使用TaskSchduler.GetScheduleTasks,但此方法受保护。

一个明显的解决方案是编写我自己的“定制计划程序”并公开许多计划任务。 这远不是理想的解决方案,因为我只需要这个数字,实际上我不会写像默认的TaskScheduler一样好的代码。 我找不到默认任务计划程序的实现。 如果我能从中继承呢? 有什么想法可以解决这个问题吗?

我需要做的就是获取默认TaskScheduler的计划工作项目数。

只需添加一个计数器,在计划新任务时将其递增,在任务完成时将其递减。 不要忘记使用使其线程安全,例如通过使用Interlocked.Increment

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM