Как программно проверить запущен скрипт или остановлен?

Страницы: 1
RSS
Как программно проверить запущен скрипт или остановлен?
 
Здравствуйте.
У меня есть девять постоянно используемых роботов на Lua. Часть из них циклические и должны быть запущены постоянно в течении всей торговой сессии, другие запускаются только для выполнения рутинной работы.  Иногда я забываю запустить циклических роботов или случайно отключаю их по ошибке. Вопрос, можно ли отследить программно работает робот или нет.  Есть разные варианты как это сделать, хочу найти самый простой.

Спасибо.
 
1) Сделайте так, чтобы каждый робот раз в минуту писал в отдельный файл текущую дату и время. Все такие файлы логично организовать в одной папке.

2) Напишите отдельный скрипт, который периодически проверяет содержимое этих файлов. Если в файле дата и время отличаются от текущих более чем на 3 минуты, значит робот, который должен был писать в этот файл, не работает.

Если хотите более оперативной реакции, надо чаще писать в файлы и чаще проверять их содержимое.

Единственная проблема состоит в том, что бывает, что один скрипт читает файл, а другой туда пишет в этот же момент. Тогда некоторые глюки могут быть. Проблему тоже можно решить: писать в файлы, скажем, в промежуток от 10 до 20 секунд каждой минуты, а читать содержимое с 30-й по 40-ю секунду.

Удачи!
 
Спасибо!
Это хорошая идея, которая сразу приходит в голову. Думаю как сделать это без создания файлов.
 
Цитата
DVN написал:
без создания файлов
Если дело в длл, можно какой-то именованный объект ядра создавать, мьютекс например.
 
Цитата
Anton написал:
Цитата
DVN написал:
без создания файлов
Если дело в длл, можно какой-то именованный объект ядра создавать, мьютекс например.
не уверен, что этот объект будет освобождаться при падении скрипта, только при завершении работы терминала.
 
Цитата
s_mike@rambler.ru написал:
будет освобождаться
С 8.7 будет освобождаться и при падении, починили наконец-то. Естественно, надо соответствующий __gc зарядить непосредственно после создания.
 
Цитата
Anton написал:
Цитата
DVN написал:
без создания файлов
Если дело в длл, можно какой-то именованный объект ядра создавать, мьютекс например.
Спасибо! Звучит красиво, только вот я совсем не в теме. :smile:  Думаю периодически выставлять заявки в один лот на дно стакана какой-нибудь облигации и контролировать, а так же и снимать их другим скриптом другим скриптом.
Может кто еще чего подскажет?
 
думаю выставление заявок ничем не лучше, чем выкладывание файлов на локальном диске.
У меня контроль работы скриптов сделан так же - скрипт выкладывает файл, другая программа их регулярно удаляет, и если файл в следующий раз не появится - то сигналит
Страницы: 1
Читают тему (гостей: 1)
Наверх