相同的数据,两个窗口
某个下午2点左右,梦想团队的机器人发出了异常信号。在 Windows 设备上运行的 Claude Code 机器人与在 Mac mini 上运行的另一个机器人,试图同时访问同一个电子表格单元格。冲突的瞬间,数据记录变成一团乱。
最初我们以为是网络问题,但检查日志后发现问题更简单,却也更致命。两个机器人在相同时间试图修改同一行数据。
自动化的隐藏陷阱:并发性(Concurrency)
非开发者在制作机器人时最容易忽略的就是这一点。小团队自动化小型任务时,只想着一个一个顺序处理。但如果同时运行两个设备呢?
问题情况:
• Windows 设备的机器人 A:上午10点15分开始更新采购者清单
• Mac mini 的机器人 B:上午10点15分开始验证相同清单
• 结果:数据损坏、记录遗失、需要重新处理
解决方案:基于时间戳的「优先级检查」
在 Claude Code 中添加了简单的逻辑。每个机器人在访问单元格前,都会先检查最后修改时间。
1. 记录当前时间 (HH:MM:SS)
2. 与最后修改时间比较
3. 如果时间差在3秒内,则等待
4. 5秒后重新尝试
仅通过这个简单的「等待逻辑」,就减少了95%的冲突。
小团队学到的大教训
这个事件之后,我们制定了这样的政策。
当自动化机器人有2个以上时,必须提前定好顺序。
• **主要设备(Windows)**:上午9点至中午12点作业
• **辅助设备(Mac mini)**:下午2点至5点作业
• **重叠时间段**:仅执行数据验证工作
这种「时间段分割」方法反而提高了效率。因为每个机器人只专注于自己的时间,错误处理逻辑也变得简单得多。
AI自动化的下一个阶段
非开发者开始自动化时常问的一个问题是。
"可以同时运行多个机器人吗?"
技术上是「可以的」。但在运营上是「要小心」,这才是正确答案。多任务处理看起来很有效率,但实际上顺序处理可能更稳定。
尤其是小团队操作 Google 电子表格或 Excel 这样的共享文档自动化时更是如此。这次经历给了我们重要的启示。
"自动化的速度不如可靠性重要。"
下次我们打算导入更精细的「队列系统(工作队列)」。至于 Claude Code 是否能实现这一点,目前还在试验中。