Название не является точным, потому что, исходя из того, что я нашел в своем исследовании, кажется, не существует способа сделать функцию атома c в nodejs, но я изложу свою проблему, чтобы увидеть если вы, люди, можете придумать что-то, о чем я не смог придумать.
Я пытаюсь настроить планировщик, в котором я могу установить интервалы времени для моих встреч, скажем, по 1 часу каждый, и когда кто-то назначает встречу. Я хочу убедиться, что временной интервал не занят перед планированием.
Так, например, я решил, что буду работать с 9:00 до 14:00 с временным интервалом в один час. Тогда мой график будет 9-10, 10-11, 11-12, 12-1, 1-2.
Придет встреча с временем начала 11 и временем окончания 12. Мне нужно убедиться, что слот еще не занят.
Я использую mongodb с nodejs и обновляюсь.
Я понимаю, что в моей коллекции встреч я могу установить индекс для комбинации значений, таких как время начала и время окончания, как описано здесь Создание многопрофильных индексов в пн goose / MongoDB .
Но если я решу изменить свой временной интервал с 1 часа на 1,5 часа, у меня будут конфликты планирования, поскольку время начала и время окончания записей в базе данных не будут совпадать с новым интервалом
В настоящее время у меня есть функция, которая проверяет, что новое назначение не будет конфликтовать, но я не уверен, будет ли оно работать хорошо, когда я получаю несколько запросов. Это приложение nodejs и restify, так что в основном api с mongodb, с которым он разговаривает, чтобы назначать встречи.
Я запускаю его с несколькими работниками, поэтому я обеспокоен тем, что в определенный момент одновременно поступят два запроса, которые обрабатываются двумя разными работниками в течение одного временного интервала. Когда моя функция проверки конфликта будет выполнена, она вернется, сообщив, что слот открыт для них обоих, поскольку еще не назначено назначение, и тогда возникнет конфликт планирования.
Есть какие-нибудь идеи о том, как с этим бороться, или что-то мешает javascript, чтобы мне не пришлось об этом беспокоиться? Все отзывы будут оценены
Спасибо!