0

对于我正在处理的一个新项目,我需要建立一个具有主服务器(主服务器)和多个工作站(从服务器)的集中式计算环境。

主人将收到几种类型的工作订单,具有不同的间隔和到期日期,例如:

NAME        INTERVAL        EXPIRATION        OPERATIONS
Job A       5 m             9 d               2592
Job B       15 m            30 d              2880
Job C       30 m            90 d              4320
Job D       10 m            50 d              7200
Job E       10 m            20 d              2880
Job F       10 m            10 d              1440

从站将通过 API 接口请求新的作业进行处理,一旦完成,它们会将存储在 SQLite 中的相关数据发送到服务器并请求新的作业。

我认为从属部分没有什么困难,但是我在主服务器上遇到了一个小问题:将工作提供给从属服务器的最佳选择是什么?我有以下选择:

  1. 预先计算并将执行作业的时间添加到数据库中。
  2. 用某种逻辑动态地为每项工作服务(MOD 运算符在这里是一种可能的解决方案吗)?
  3. 随机提供工作。

说最后一个选项实际上不是一个选项可能是一件好事,因为我按操作次数(到期/间隔)收费,我认为如果我的客户为其他人付费,他们不会太高兴.

我想听听你对我应该如何做到这一点的想法。

4

1 回答 1

1

通过允许奴隶在有时间处理作业时请求作业,您将获得更好的吞吐量。

如果 master 分配作业,一些 slave 可能会等待什么都不做,而其他 slave 则超载。

如果从属设备在一段时间内未返回答案,您还需要添加一些功能以使作业再次可用。

于 2009-09-29T20:51:59.260 回答