-1

最初它是一个小项目,只有 150 个帐户,我在 python 中编写了一个 selenium 程序来与他们一起做一个小任务。它使用一台计算机,大约需要 5 个小时。但是,现在我希望扩展到 1000 个帐户。出于明显的原因,我不想在一台计算机上执行此操作,此任务需要每天完成一次,显然在一台计算机上完成此任务大约需要 30-35 小时。我想使用多台机器,但也想选择轻松扩展到三台、四台或更多。

我已将所有帐户的数据移至亚马逊云数据库,并且可以从我的 python 程序轻松连接到它。但是,正如我之前提到的,我希望这个项目易于扩展。我不想硬编码值,也就是让一台计算机执行帐户 1-500,另一台执行 501-1000(如果我添加 500 个帐户和 2 台机器怎么办?我希望每台机器执行 1500/4)。我正在考虑一种主从方法。在每台机器上,我都有一个程序,可以将一些帐户作为数组调用。还有一个在我的机器上运行的主程序,每 24 小时可以发送一个命令,其中包含每台机器应该使用的帐户。

然后我希望程序将数据返回给我,当每个从站完成时,主程序将合并每个从站发回的数据并相应地更新表。或每个从站独立更新表,但我不确定这是否可能由于表锁(如果有人可以对此发表评论,这也会有所帮助)

谢谢阅读!

编辑:如果您认为这太宽泛了,我不是在寻找确切的答案。只是想找到以前做过类似事情的人。仅列出一项我可以研究的技术或方法将对我有很大帮助

4

1 回答 1

0

我之前做过类似的事情,最终使用了主从设计。

我有一个拥有“工作”数据库的主人,奴隶们通过查询它来完成他们的任务。

在我的情况下,这个过程是这样的:

  1. 作业的从属查询主机
  2. 主机发送 50 个作业并使用从机名称更改 DB 中的状态
  3. 奴隶完成工作并告诉主人
  4. 数据库中的主更改状态以完成和发送新任务
  5. 重复直到队列全部完成

这样,随着作业队列变大,我可以添加更多从站,并且它们可以具有不同的性能。我的一些奴隶比最慢的奴隶多 3 倍,这取决于互联网连接和页面加载时间。

于 2016-02-27T23:51:13.970 回答