• Как отслеживать время у объектов в базе данных?

    node-schedule
    При запуске сервиса просто взводите все джобы, которые у вас есть в базе. Если их очень много, группируйте по времени срабатывания. Ну или можно действительно делать выборку только за сегодняшний день, каждые несколько часов, нужно подобрать параметры в зависимости от задачи и нагрузки.

    Или вот ещё планировщик есть: Bree
    Ответ написан
    Комментировать
  • Как отслеживать время у объектов в базе данных?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    Никаких setTimeout точно.
    spoiler
    Во-первых: setTimeout ничего не гарантирует, кроме того что он не сработает раньше указанного интервала(зато может гораздо позже).
    Во-вторых: это абсолютно ненадёжно, т.к. любой перезапуск и всё пропало.
    В-третьих: это очень жирно по ресурсам.

    Просто при каждом поступающем сообщении создаёте задачу на временную метку(можно с помощью совета Станислав Макаров) если такой ещё нет, которая в указанное время запросит все записи с такой меткой и выполнит с ними нужное действие.
    Метку и, соответственно, запрос можно создавать с округлением в размере допуска.
    В базе естественно всё это дело надо индексировать и складывать для удобства таких запросов.
    Ответ написан
    Комментировать
  • Как отслеживать время у объектов в базе данных?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    Средствами ноды или перечисленными в ответах способами сделать можно, но это не эффективно, обычно для такого используют менеджеры очередей, типа RabbitMQ и ему подобные.
    Ответ написан
    Комментировать