JS “межпроцесное” взаимодействие

272
05 декабря 2017, 23:05
  1. Есть таймер, например, на 1 секунду. Он выполняет какое-то действие и если оно длится дольше 1 секунды начинаются глюки ибо следующий проход таймера запускает опять это действие. Как сделать чтобы эти таймеры не мешали друг другу? Что-то вроде volatile?

  2. Примерно та же ситуация, но скрипт запущен в кластере например на pm2. Два экземпляра скрита мешают друг другу при работе например с той же БД. Использование в качестве флага о блокировки другим процессом поля в БД не помогает, потому что нет гарантии что они одновременно не попытаются его записать в одинаковое значение. Пока использую костыль с lock файлом, но должно же быть более правильно решение?

Answer 1
  1. Например:

    • ставить «лок» в какую-нибудь глобальную переменную;
    • запускать не setInterval, а setTimeout в конце выполнения функции.
  2. В (нормальных) БД можно просто лочить таблицу (запись/всю базу).

READ ALSO
Формат текущей даты и времени

Формат текущей даты и времени

Как получить текущую дату и время в формате: 12:50:12 0412

322
Раскраска частей мультимаршрута

Раскраска частей мультимаршрута

Как раскрасить части мультимаршрута? От точки A до B один цвет, а от точки B до C другой

220
Изменить js срипт

Изменить js срипт

Есть скрипт простенький

279