LINUX.ORG.RU

Серверные задачи выполнение которых назначено на определенное время в зависимости от UTC

 , ,


0

2

Всем привет!

Есть следующая задача. Есть интернет сервис для планирования и необходимо реализовать следующую задачу.

В 23:59:59 по локальному времени пользователя, сервер должен выбрать все не выполненные задачи пользователя и перенести на следующие сутки.

Предлагают юзать Cron для этого, но я не пользовался им не разу.. + получается что при регистрации или перед переносом задач (пользователь может путешествовать) я должен определить его UTC и на базе этого сделать перенос...

В общем нужны варианты для обдумывания решения.

Помогите пожалуйста.

На сервере использую webpy(python)



Последнее исправление: technobot (всего исправлений: 1)

Что за пользователь? Юниксовый пользователь, пользователь на сайте?
Что за задачи? Некие сущности на сайте?

MrClon ★★★★★
()

Пользователь при регистрации указывает часовой пояс (с возможностью смены через личный кабинет), по крону переносишь каждый час задачи всех подходящих пользователей. Можешь прикрутить геолокацию как подсказчик пользователю, что нужно поменять часовой пояс.

deadNightTiger ★★★★★
()
Ответ на: комментарий от technobot

Тогда крон тут не на первых ролях. Задача крона раз в час/минуту/секунду запускать скрипт который полезет в базу и как-то её перелопатит (посмотрит у каких пользователей сейчас наступает «завтра» и что-то там сделает с их тасками).

HINT: есть часовые зоны не кратные часу, так-что если запускать скрипт раз в час то в зависимости от его реализации он либо вовсе не будет обрабатывтаь некоторых пользователей, либо «завтра» у них будет наступать не ровно в полночь

MrClon ★★★★★
()
Ответ на: комментарий от Deleted

Какая-то из вариаций умеет. А ещё можно по крону раз в минуту запускать скрипт который 60 раз с секундными интервалами будет запускать нужный скрипт

MrClon ★★★★★
()
Ответ на: комментарий от Jopich1

Те юзаешь запускаешь в цикле скрипт проверки юзаешь pytz для получения Лок времени каждого юзера в случае совпадения выполняешь и спишь дальше скрипт такой лучше запустить через supervisord

Jopich1
()
Ответ на: комментарий от Jopich1

И не забывай что по дефоулту дата в python в формате без использования часового пояса

Jopich1
()
Ответ на: комментарий от Jopich1

Что-бы сказать что ты запускаешь скрипт раз в секунду кроном (:
Ну и ещё что-бы не напрягаться с демонизацией скрипта.
Вообще это надо смотреть по архитектуре и личному вкусу, кому что удобнее. Может там само приложение — демон, и можно создать в нём, например, отдельный тред для обработки регулярных фоновых задач. Крон это просто наиболее очевидный и простой вариант, слабо зависящий от архитектуры приложения

MrClon ★★★★★
()

Ерундой занимаешься. Если я в ГМТ+4 ставлю задачу на завтра, зная, что буду уже в ГМТ+1 - я сам время скорректирую. Твои костыли - тлен и суета — я тебе в бубен сам дам, если время у моего таска уедет из-за предполагаемой *тобой* смены часового пояса, да и без клиентского приложения ты нормально это не определишь.

cnupm
()
Ответ на: комментарий от MrClon

крипт раз в секунду кроном (:

Ага не забывай что если будешь запускать скрипт кроном то нужно позаботится о том чтобы пред скрипт закончил свою работу. Т е юзать всякие Locki. А это сложнее чем доверить демонизацию supervisord.

Jopich1
()
Ответ на: комментарий от Jopich1

Это я к тому что если идет речь об скриптовом языке типа питона то проще while sleep + демонизатор типа supervisord ничего не придумали

Jopich1
()
Ответ на: комментарий от MrClon

Какая-то из вариаций умеет.

Да, кастомный скрипт на libevent, я бы не называл это вариацией крона

А ещё можно по крону раз в минуту запускать скрипт который 60 раз с секундными интервалами будет запускать нужный скрипт

Можно все, просто ты был неправ. Не надо оправдываться

Deleted
()
Ответ на: комментарий от Deleted

Чёт ты как-то слишком серьёзно всё воспринимаешь. Вроде очевидно было что про секунды это просто фигура речи, а про скрипт-костыль — шутка. Даже ежеминутный запуск это явное излишество.

P.S. что-то не нагуглил крон с секундами, а ведь помню на лоре кто-то упоминал такое, и вроде даже совместимое со стандартными кронами (ставился вместо них). Может коллективный разум напомнит?

MrClon ★★★★★
()
Ответ на: комментарий от Jopich1

Вкусовщина. По мне — лишний демон это лишняя сущность. Кроновая джоба это всё-таки стандартная сущность, меньшее зло

MrClon ★★★★★
()
Ответ на: комментарий от MrClon

Мне показалось, это ты излишне серьёзно воспринял комментарий про секунды. Там даже смайл в конце был! ;)

Deleted
()
Ответ на: комментарий от Jopich1

/me ушёл запускать все свои задача ежесекундно

MrClon ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.