@botoid

Страница 214 из 4042
x3233
27.10.2016
23:15:45
Если пользователь отредактировал сообщение, то вы его тоже в базе правите, или отдельно новую запись добавляете?

x3233
27.10.2016
23:17:30
Наверное логично будет отдельно добавить ещё запись...

/
27.10.2016
23:44:45
хотите потестить отложенный постинг через бота? "Формирует посты для отправки в канал"

Google
/
27.10.2016
23:47:12
хотите потестить отложенный постинг через бота? "Формирует посты для отправки в канал"
с понимаением естетсвенного языка при установке времени можно форматом Y-m-d H:i можно словами через 3 минуты

Очереди, rabbitmq, php

Vitaly
27.10.2016
23:55:46
ану

/
27.10.2016
23:56:11
ану
давай в личку напишу? или тут

Vitaly
27.10.2016
23:56:29
давай тут, чо стесняться

)

Rocket
27.10.2016
23:58:10
Очереди, rabbitmq, php
Кролик, это интересно

Как отложенные события сделаны?

/
27.10.2016
23:59:46
Кролик, это интересно
да, есть классные фишки в очереди. не кто первый зашел, а у кого время истекло, идеально для отложенного постинга

Rocket
27.10.2016
23:59:58
Угу, понял.

А с часовыми поясами как борешься?

Что на счет граничных ситуаций, когда, например, локальное время переводится назад

/
28.10.2016
00:01:23
Как отложенные события сделаны?
https://github.com/php-amqplib/php-amqplib/blob/master/demo/delayed_message.php - ну вот в демке есть пример

Google
/
28.10.2016
00:01:56
А с часовыми поясами как борешься?
у юзера спросить и прибавить к таймстап? для меня самый разумный вариант будет

Rocket
28.10.2016
00:03:07
у юзера спросить и прибавить к таймстап? для меня самый разумный вариант будет
Ну, скажем, такая ситуация. Часы переводятся в 2 часа ночи на час назад. Юзер поставил таймер на 1:30. Когда сработает событие?

Это не праздный интерес, у самого такая задача стоит.

Rocket
28.10.2016
00:05:22
в 1:30 по старому времени, до перевода
Окей, а если таймер ровно на 2 часа?

/
28.10.2016
00:05:52
Это не праздный интерес, у самого такая задача стоит.
еще такие задачи не расматривались. очерель только интересовала, Для того чтобы передавать тяжелые задачи на выполнения. .. Обработка фоток нейросетями и другое

Окей, а если таймер ровно на 2 часа?
в 2 запостит по старому времени. ТАк как очередь не на время смотрит, а на милисикунды, они истекут и будет пост

Rocket
28.10.2016
00:07:12
Я не просто так спрашиваю. Для этой задачи проблема часовых поясов - краеугольный камень.

в 2 запостит по старому времени. ТАк как очередь не на время смотрит, а на милисикунды, они истекут и будет пост
Ну я не про очередь сейчас. Вот по логике должно по новому времени срабатывать, потому что до перевода 2 часа не наступит.

/
28.10.2016
00:09:14
Rocket
28.10.2016
00:11:17
Перевод вперед еще веселее. Что если в 2 часа часы переводят на час вперед. А юзер поставил таймер на 2:30?

/
28.10.2016
00:12:44
Перевод вперед еще веселее. Что если в 2 часа часы переводят на час вперед. А юзер поставил таймер на 2:30?
сразу выполнится как тлоько время не совпадет, тут просто, ну да пост в 3 прилетит, ну что поделать

/
28.10.2016
00:15:20
Тоесть cron-like система?
да если крон. Если реббит тот пример выше, то там не важно какой часовой пояс, важно сколько секунд установили, до выхода поста и секунды будут считася от текущего времени

бб

fox.lua
28.10.2016
05:08:44
Сделай на callback api
Я думал, уже готовый есть

Google
fox.lua
28.10.2016
05:09:00
Евгений
28.10.2016
06:29:51
Да это понятно. Я админ там
Однозначно callback api. Легко делается, я так для одной группы раньше реализовал

fox.lua
28.10.2016
06:51:10
Ответ: Unix Time. А дальше юзер идёт нахуй со своими поясами
Оказывается, не всё так просто. На хабре недавно попадалась статья с типичными проблемами

Сейчас поищу

Интересная была

Евгений
28.10.2016
06:51:50
Оказывается, не всё так просто. На хабре недавно попадалась статья с типичными проблемами
Я в курсе, сам подобного бота делал и есть одно отличное видео

http://www.youtube.com/watch?v=-5wpm-gesOY

/
28.10.2016
06:55:34
Оказывается, не всё так просто. На хабре недавно попадалась статья с типичными проблемами
куда проще? вывести клавиатуру, с часовыми поясами дать возмоность выбрать, а дальше прибавляй секунды

fox.lua
28.10.2016
06:56:42
куда проще? вывести клавиатуру, с часовыми поясами дать возмоность выбрать, а дальше прибавляй секунды
Часовые пояса могут меняться, Unix Time не учитывает переходы на летнее / зимнее время и т.п.

Более того, в Unix Time секунды могут повторяться

Если перевести локальное время в UTC, затем прибавить интервал времени и перевести обратно, в некоторых случаях получится неверный результат

Rocket
28.10.2016
07:02:51
Евгений
28.10.2016
07:03:51
fox.lua
28.10.2016
07:04:19
Сейчас поищу
Вот. Нашёл https://m.habrahabr.ru/company/mailru/blog/242645/

Главный посыл: UTC не панацея

Google
Богдан
28.10.2016
07:04:35
+
А у тебя как это работает? У тебя же юзеры по всему миру

Поделись

Контроллер бот твой же? Или я опять перепутал

fox.lua
28.10.2016
07:05:34
Один раз в год, Карл!
Когда как. Каждый раз это устанавливается специальной службой времени. Речь про дополнительные секунды, вставляемые из-за замедления скорости вращения Земли

Oleg
28.10.2016
07:06:45
Не жалуются

Oleg
28.10.2016
07:06:54
Видимо, попал

Admin
ERROR: S client not available

fox.lua
28.10.2016
07:08:45
Один раз в год. Leap second называется
Это не происходит на регулярной основе. Например, с 2009 по 2011 год таких секунд не было

fox.lua
28.10.2016
07:09:37
Иногда да

Да и в любом случае, не комильфо так забивать на время

Евгений
28.10.2016
07:10:05
Иногда да
Тогда тебе придётся страдать, ибо сетевые задержки ты не учёл

Богдан
28.10.2016
07:10:16
Лол

fox.lua
28.10.2016
07:10:32
Евгений
28.10.2016
07:10:49
Да и в любом случае, не комильфо так забивать на время
Если погрешность в несколько секунд, то я забиваю с чистой совестью. Никто, кроме пары зануд, не заметит

Евгений
28.10.2016
07:11:35
Они меньше секунды зачастую
Ну так бывают ситуации обрывов на пути следования трафика. Проблемы у корневых DNS, у хостеров

Google
fox.lua
28.10.2016
07:12:06
Вычисляешь по ID?

Евгений
28.10.2016
07:12:22
Вычисляешь по ID?
Сразу в бан :D

fox.lua
28.10.2016
07:12:51
Ну попробуй ?

Евгений
28.10.2016
07:13:08
Ок)

Богдан
28.10.2016
07:13:24
У него динамический

)))

Евгений
28.10.2016
07:14:21
Я у себя в боте делал так: Спрашиваешь юзера о часовом поясе. Смотришь, какой пояс у сервера. Юзер кидает время, переводишь в unix time, вычитаешь 3600*дельту его ЧП и твоего, готово.

fox.lua
28.10.2016
07:16:23
Не пойдёт ли это прахом, если госдура опять чего-нибудь выдумает с поясами?

Евгений
28.10.2016
07:16:33
Самая сложная проблема, имхо, это отправлять запланированные сообщения. Идеальный вариант – через команду "at", но там всё через жопу

Евгений
28.10.2016
07:17:20
Не пойдёт ли это прахом, если госдура опять чего-нибудь выдумает с поясами?
Юзеру нужно будет просто отредактировать свой пояс через бота, а тебе – отредактировать в конфиге пояс самого бота

Rocket
28.10.2016
07:18:16
Это не происходит на регулярной основе. Например, с 2009 по 2011 год таких секунд не было
Ошибка в одну секунду за несколько лет - ерунда. Для нашей задачи это норм

Oleg
28.10.2016
07:18:19
Есть и другие решения

Евгений
28.10.2016
07:21:02
А что на счет времени близкого к смене зима/лето?
Проблемы юзера. Обычно ставят задачи не настолько критичные. Для критичных есть память и специальные утилиты

Есть прекрасный sched в питоне
Стандартная библиотека? Или внешний модуль?

Rocket
28.10.2016
07:23:53
17.6. sched — Event scheduler — Python 3.5.2 documentation https://docs.python.org/3.5/library/sched.html

Стандартная

Евгений
28.10.2016
07:25:03
Спасибо!

Страница 214 из 4042