Семафор многопоточности в MikroTik RouterOS - существует ли?

Тема в разделе "Скрипты", создана пользователем warez, 8 апр 2022.

  1. warez

    warez Новый участник

    Задался вопросом как можно надежно обеспечить запуск скрипта RouterOS только в единственном экземпляре?

    обычно юзал код в начале скрипта (Internet.Check - имя скрипта), который не давал при работе скрипта запустится другим экземплярам скрипта:
    Код:
    :if ([:len [/system script job find where script=Internet.Check]] > 1) do={
      :error "Script Internet.Check already run!";
    }
    
    Но! если скрипт запускается по событию в /tool netwatch получается несколько скриптов запускается одновременно при запуске роутера (если мониторятся 3 хоста в netwatch, то при загрузке роутера событие down сработает одновременно и скрипты запустятся прям синхронно. и даже если в скрипте получить значение run-count для скрипта - оно одинаковое)

    Собственно вопрос: существует ли какой-то объект, который можно было бы использовать как семафор синхронизации параллельно выполняемых скриптов?