在nodejs中创建原子函数

问题描述 投票:0回答:1

标题不准确,因为根据我在研究中发现的内容,似乎没有办法在nodejs中使原子成为原子,但是我将提出问题,以查看大家是否可以提出来。带着我一直无法想到的东西。

我正在尝试设置一个调度程序,我可以在该调度程序中设置每个约会时间为1小时的时间,当有人进行约会时,我想确保在安排时间之前不占用该时间段。

例如,我决定我将在上午9点至下午2点之间以一个小时的时间工作。然后我的时间表是9-10、10-11、11-12、12-1、1-2。

约会的开始时间为11,结束时间为12。我需要确保尚未使用该时段。

我正在将mongodb与nodejs一起使用,并进行restify。

我了解,在约会集合中,我可以在诸如开始时间和结束时间的值的组合上设置索引,如此处Creating Multifield Indexes in Mongoose / MongoDB所述。

但是如果我决定将我的时间段从1小时更改为1.5小时,则将发生计划冲突,因为数据库中条目的开始时间和结束时间将与新间隔不匹配

[目前,我有一个函数可以检查以确保新约会不会冲突,但是我不确定在有多个请求进入时新约会是否可以正常工作。这是一个nodejs和restify应用程序,因此基本上是一个api与之对话的mongodb来处理约会。

我正在与多个工作人员一起运行它,因此我担心在某个时候会同时收到两个请求,这两个请求是由两个不同的工作人员在同一时间段处理的。当我执行冲突检查功能时,它会返回说,因为尚未进行任何约会,因此这两个插槽都已打开,因此会发生调度冲突。

关于如何解决这个问题的任何想法,或者javascript执行的方式是否有某些东西使我不必为此担心呢?所有输入将不胜感激

谢谢!

node.js mongodb restify database-concurrency
1个回答
0
投票

我最终使用https://github.com/Automattic/kue将请求排队,并添加了另一个端点,您可以在其中检查请求的状态。因此,当您要预约时,您的请求最终会出现在作业队列中,然后可以定期检查请求的状态。这样,一次只处理一个约会请求,因此没有并发问题。

© www.soinside.com 2019 - 2024. All rights reserved.