Php 为每个数据库条目正确分配公共id
假设我有十个并行运行的cron作业,它们从数据库中获取条目并进行处理 第一个cron作业从数据库中获取“commonId”字段为1的所有条目, 第二个从数据库中获取所有条目,其中“commonId”字段为2,以此类推,直到10 解决方案- 当我从前端向数据库添加条目时,我有一个保存了“最后一个”公共id的文件。该id递增到10,然后对于数据库中的每个条目再次设置为1 跨栏- 前端有很多用户,添加条目时,两个或三个连续条目使用相同的公共id。这不应该发生。数据库中的每个条目都应该具有1-10之间的序列公共id 有什么解决办法吗?要获取最新的公共id 我在用MongoDBPhp 为每个数据库条目正确分配公共id,php,sql,mongodb,Php,Sql,Mongodb,假设我有十个并行运行的cron作业,它们从数据库中获取条目并进行处理 第一个cron作业从数据库中获取“commonId”字段为1的所有条目, 第二个从数据库中获取所有条目,其中“commonId”字段为2,以此类推,直到10 解决方案- 当我从前端向数据库添加条目时,我有一个保存了“最后一个”公共id的文件。该id递增到10,然后对于数据库中的每个条目再次设置为1 跨栏- 前端有很多用户,添加条目时,两个或三个连续条目使用相同的公共id。这不应该发生。数据库中的每个条目都应该具有1-10之间的
如果这不可能。可以做些什么 你想要的是一个原子操作,MongoDB有办法做到这一点。看 你有什么特别想让他们这样循环的原因吗?如果您允许任何计时作业使用任何挂起的作业,它的处理速度不是更快吗
我建议简单地依赖生成的MongoID(请参阅),按它们的相反顺序查找第一个未分配的工作项,使用前面提到的原子技术之一获取它。如果找不到工作,请睡眠并重试或退出(取决于您的chron作业重新安排这些工作的频率)。我建议查看该页面上的命令和示例。如果你只是在寻找一个快速的自动递增/串行计数器,我建议你看看这篇博文:。
使用任何挂起的作业