0

我们有一个 Web 应用程序,其中调用了对长时间运行或高处理器进程的请求。

我们想创建一个 Windows 服务来从 IIS 服务器上卸载它。我们将在多台机器上安装此服务以减少这些作业的等待时间。我们正在研究的一个想法是将Job对象序列化到 Sql Server 中,并将其JobType作为另一列。

作业服务将通过使用其指示器更新行来声明该作业,这将阻止其他服务获取它。作业完成后,服务将删除该条目。

我正在寻找的是其他可能更好的想法来完成作业服务排队。

4

1 回答 1

0

我想说这是处理这个问题的好方法。我唯一要补充的是,虽然我不知道 Job 对象是什么或它是如何创建的,但您也可以卸载它。无需创建对象并将其序列化到数据库中,只需将原始数据存储在 SQL 中。让服务自己从头开始构建 Job 对象。这样一来,您就可以将序列化排除在外。但是,如果这不可能,我会说您的解决方案似乎是最可行的。

如果你确实走这条路,你可以考虑优化你的服务卸载。例如,您可以在负载繁忙时唤醒额外的服务,然后在负载减轻时让一些服务进入睡眠状态。

于 2011-05-09T02:17:04.203 回答