@AlmazKayum

Как сделать алгоритм, выполняющий команду в определенное время?

Доброго времени.
Имеется следующая задача:

Принимаем от пользователя значения часов, например 10:30, 19:00. Значения часов может быть одно, может быть несколько. Также пользователь указывает часовой пояс + 3 от UTC, к примеру
Необходимо сделать рассылку определенной информации пользователю именно в указанное время. Пользователей может быть много.

Пока я понял, что надо в отдельной таблице в БД хранить часовые пояса, как отклонения от UTC в секундах, +3 это 3*60*60 = 10800 сек.
И в отдельной таблице хранить ID пользователей и отклонения от 00:00 в секундах, к примеру для 10:30, это будет 10*60*60 + 30*60 = 37800 секунд.

Какой сделать алгоритм запуска команды по отправке информации?

Самый простой вариант, но и самый ненадежный:
В 00:00 по UTC делаем запуск команды через 10800 + 37800 = 48600 сек.
То есть запускаем функцию, где есть пауза 48600 сек и затем исполнение команды. Любой перезапуск скрипта или сервера приведет к неотправке сообщений.

Кто знает подскажите алгоритм словами, или какие то библиотеки Python. Если непонятно и сложно объяснил - пишите вопросы.
  • Вопрос задан
  • 222 просмотра
Пригласить эксперта
Ответы на вопрос 1
Время стоит хранить в Unix time. Получили от пользователя часы и его пояс, сразу перевели в timestamp, сохранили целое число.

Как отправлять. Есть системные механизмы, например cron в Linux. Можно попробовать сделать свой велосипед по мотивам: в общем это бесконечный цикл, который смотрит, не пора ли что-ньть сделать «сейчас».
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы