logo

如何保证同一个 Job 不会被多个 Worker 并发执行?常见手段有哪些(锁/租约/幂等等)?

How do you prevent the same job from being executed concurrently by multiple workers (locks/leases/idempotency)?

题目类型: 技术面试题

这是一道技术面试题,常见于澳洲IT公司面试中。

难度: medium

分类: System Design

标签: dedup, lock, lease, exactly-once

参考答案摘要

答案 要防止并发重复执行,常见做法是把“领取任务”做成 原子操作 : 数据库原子状态迁移 :用条件更新 UPDATE Job SET status='running' WHERE job_id=? AND status IN ('scheduled','queued') ,只有一个 worker 能成功。 分布式锁/租约 :用 Redis/etcd 的 lock + TTL(lease),避免死锁...

答题技巧

技术面试题建议先理清思路再作答,从基础概念讲起,逐步深入。可以结合实际项目经验解释技术原理,展示你的理解深度和实践能力。

本题提供 STAR 原则详细解答和技术解析,登录匠人学院学习中心即可查看完整答案、收藏题目并进行模拟面试练习。

← 返回面试题库

如何保证同一个 Job 不会被多个 Worker 并发执行?常见手段有哪些(锁/租约/幂等等)?

中等system-designdistributed-systemsjob-schedulerqueuekafkarabbitmqdynamodbcassandraleader-electionraftetcdzookeeperretryrate-limitingcheckpointing

想查看完整答案?

登录匠人学院学习中心,获取 STAR 格式回答和详细技术解析

前往学习中心查看答案