2

我的问题描述如下:我有 n 个基于状态的数据库无限爬虫:目前它是如何发生的:

  • 我们使用单机爬行。
  • 我们有三层优先级队列。高、中和低。
  • 在启动时,所有数据库作业都被放入较低级别的队列中。
  • Worker 从队列中读取作业并执行操作。
  • 完成工作后,它会延迟 5 分钟重新安排它。

我找到的解决方案

对于优先队列,我可以使用:

- http://zookeeper.apache.org/doc/r3.2.2/recipes.html#sc_recipes_priorityQueues

我仍在寻找的问题解决方案是:

  1. 如何使用未来的计划时间重新安排队列中的作业。有没有办法在 zookeeper 中做到这一点?
  2. 取消已开始的作业。假设用户更改了他的数据库身份验证详细信息。我想停止已经为该数据库运行的作业并使用新的详细信息重新启动。我的想法是在启动工作人员时它会订阅它的 znode 更改,如果发生某些事情,它将停止该工作并重新安排它。
  3. 无限队列 我认为完成后它将从队列中删除并在未来的调度时间内读取它。(它的实现取决于第 1 点)

这是执行此任务无限任务的正确方法吗?

4

0 回答 0