Я создал демон в Ruby, у которого счетчик увеличивается внутри цикла. Цикл делает свое дело, затем спит в течение 1 секунды, затем продолжается. Упрощенно это что-то вроде:
loop do
response = send_command
if response == 1
counter += 1
end
sleep(1)
end
Каждые 5 минут я хотел бы вызывать метод для записи значения счетчика в базу данных. Я полагаю, что есть несколько способов сделать это. Первоначально я рассмотрел вызов Time.now в цикле, проверяя его на соответствие 5 минутам и 0 секундам, и, если это соответствует, вызывает функцию sql. Однако это кажется ужасно неэффективным, а также может пропустить запись, если send_command займет некоторое время.
Другой возможностью может быть предоставление переменной счетчика, которую можно вызывать (и сбрасывать) через сокет. Я кратко взглянул на класс Socket, и это кажется возможным.
Есть ли очевидный / лучший способ сделать это, что мне не хватает?