繁体   English   中英

分配调度程序作业的记录处理

[英]Distribute processing of records of scheduler job

我正在处理一个用例,其中我计划了一个cron作业(通过石英),该作业从db中读取某些条目并对其进行处理。 现在,在每个日程表中,我可以获得需要处理的数千条记录。 处理每条记录需要时间(以秒/分钟为单位)。 当前,所有这些记录都在单个节点(石英选出的节点)上进行处理。 现在,我面临的挑战是并行处理这些记录。 请帮助我解决以下问题:

  1. 我如何将这些记录/任务分配到机器集群
  2. 如果任何机器在处理了很少的记录后发生故障,则剩余的记录应由集群中的正常节点处理
  3. 收到所有记录处理已完成的信号。

创建cron作业以所需的频率在每个主机上分别运行。 您将需要对每个记录进行某种形式的锁定,或者对记录集进行某种形式的范围锁定,以确保服务器处理相互排斥的记录集。

例如:您可以将以下新字段添加到所有记录:

由服务器锁定:锁定持续时间(或锁定到期时间):

在每次运行中,每个cron都会选择一组已过期或空锁的记录,然后通过放置这两个条目来获取少量记录的锁。 然后继续处理它们。 如果崩溃或卡住,则锁将过期,否则将在完成时释放。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM