0

我需要构建一个“执行引擎”来监听来自各种系统的请求并执行那些请求的任务。
我想在“执行引擎”中公开一个 Web 服务,每个系统都可以访问这个 Web 服务,要求进行一些操作。所有操作都将保存在磁盘中以处理故障(所有任务都是异步的)

例如,add_email_to_block_list,我们的一个网站可以要求“执行引擎”在邮件系统中执行此任务。

“执行引擎”假设在一分钟内(将来)处理超过 100 个请求。

很可能我将不得不使用 C# 来完成此类任务。(也是 JAVA 的机会)。

  1. 在设计这种核心引擎时需要考虑什么?
  2. 您是否知道有关这种系统的 WEB 上的某种用例?(可能是一些文章/教程?)
  3. 我正在谈论的这个“执行引擎”的专业名称是什么(所以我可以在谷歌中更好地搜索)?

谢谢

4

2 回答 2

1

您正在描述一个经典的远程过程调用接口。通常,为 RPC 设计 Web 服务的主要考虑因素是可伸缩性。为了在阻止系统接收其他请求的同时不处理太多数据,通常最好将数据卸载到其他作业线程。但是,您不应该创建一个每个请求一个线程的系统,除非是作为小型玩具系统,因为这可能是主要的系统资源占用。相反,您应该考虑使用某种线程池来处理传入的任务。

这种系统到处都在使用,而且确实是 Web 服务的主要用途。只需查看将Web 服务描述为 RPC的任何描述即可了解更多详细信息。

于 2011-09-12T20:01:51.433 回答
0

尽量减少全局数据的使用,并使用关键部分(或互斥体、信号量或其他)保护对它们的访问。对于文件等外部资源也是如此。然后为每个传入请求创建一个新线程(如果您的服务器基于 Unix,则在某些情况下新进程可能会更好),您应该没问题。

于 2011-09-12T19:57:21.207 回答