Перед скачиванием видео мы в базе помечаем это, и все последующие запросы становятся в режим ожидания.
Как только скачивание закончится, все ожидающие сразу имеют доступ к этому файлу.
Более того, закачав один раз файл в телеграм, нам выдается file_hash, который мы также сохраняем в базу. На все последующие запросы к этому файлу мы вообще не запускаем никаких kubernetes job, а читаем этот file_hash из файла, и сразу возвращаем пользователю.
Именно поэтому для уже скачанных файлов бот выводит плашку "⚡ мгновенно"
Обычно, в таких ситуациях логичнее индексировать мобильную версию, а не десктопную, тем более, если сами пишете, что бутылочным горлышком была именно сеть.
поэтому для всех числовых переменных используем тип long (иначе вычисления будут некорректными)
Неверно.
В вашей реализации, начиная с m=26, метод factorial начнет возвращать отрицательные числа.
Начиная с числа m=66, метод factorial начнет возвращать 0, после чего все проверки типа:
factorial(m) % n == 0
становятся true. Т.е. фактически, максимальный факториал, который вычисляется (притом неправильно) — это факториал от 66, что несколько меньше необходимых 2400000.
Правильный тип данных в данном случае — BigInteger.
Но как только вы замените long -> BigInteger, то вы поймете, что ваш код никуда не годится.
Вычислять факториал от двух с половиной миллионов, причем внутри двух циклов — это прямо по Горькому: «безумству храбрых поём мы славу».
Хочтелось бы продолжения данной темы, с ответами на следующие вопросы:
1. Деплой приложения «одной кнопкой» без даунтайма (после обновления одного\нескольких компонентов).
2. Бекапы и развертывание приложения из бекапов после падения серевра(ов) (ситуация, типа «взрыв в датацентре»)
3. Наращивание количества серверов в случае роста нагрузки и распределение запросов между новыми серверами. Желательно, чтобы процедура добавления\удаления сервера из кластера реализовывалась также «одной кнопкой».
В данный момент на Хетцнере крутиться моя машинка EQ6
вот ее характеристики
Intel® Xeon® E3-1245 Quadcore
— 16 GB DDR3 RAM ECC
— 2 x 3 TB SATA 6 Gb/s HDD
— 7200 rpm (Software-RAID 1)
Стоит это удовольствие 57евро в месяц, т.е. примерно 2300р ( www.hetzner.de/en/hosting/produkte_rootserver/ex6).
За схожие деньги (2000р) у вас можно взять:
— Core i3-2100 3,1 Ггц
— RAM 4 Гб DDR3
— 2 х 0,5 Тб SATA–III HDD RAID1
Собственно вопрос: это действительно в 1.5-2 раза дешевле?
ПС. пожалуйста, не пишите про плату за установку, при таком раскладе он окупается очень быстро.
Пытался восстановить и через keeper light и через keeper classic.
Так мне до ящика на gmail.com тупо письма на приходят. Написал в саппорт 2 недели назад — ни ответа, ни привета.
Самое смешно, что пользуюсь другим wmid, а этим wmid уже лет 5 не пользуюсь и он мне не уперся. Но хитрые вебмани нашли совпадения в этих кошельках (при попытке привязать кошелек к альфабанку) и вообще заблокировали доступ к обоим кошелькам(!). Чтобы восстановить доступ, мне пришлось послать скан пасспорта. Но и этого оказалось мало. Теперь мне нужно этот номер пасспорта ввести на сайте, а в ответ мне должно прийти письмо, которое не приходит.
Что делать — не знаю. Может кто присоветует?
Загрузка будет произведена один раз:
Перед скачиванием видео мы в базе помечаем это, и все последующие запросы становятся в режим ожидания.
Как только скачивание закончится, все ожидающие сразу имеют доступ к этому файлу.
Более того, закачав один раз файл в телеграм, нам выдается
file_hash
, который мы также сохраняем в базу. На все последующие запросы к этому файлу мы вообще не запускаем никаких kubernetes job, а читаем этотfile_hash
из файла, и сразу возвращаем пользователю.Именно поэтому для уже скачанных файлов бот выводит плашку "⚡ мгновенно"
Добавьте в сравнение Percona Operator for PostgreSQL:
https://docs.percona.com/percona-operator-for-postgresql/index.html
sysdig.com/blog/friends-dont-let-friends-curl-bash
К пример, ваша статья:
habrahabr.ru/post/346198 — 42кб
m.habrahabr.ru/post/346198 — 13кб
т.е. разница в 4 раза.
Ну и парсить потом будет проще.
Неверно.
В вашей реализации, начиная с m=26, метод factorial начнет возвращать отрицательные числа.
Начиная с числа m=66, метод factorial начнет возвращать 0, после чего все проверки типа:
становятся true. Т.е. фактически, максимальный факториал, который вычисляется (притом неправильно) — это факториал от 66, что несколько меньше необходимых 2400000.
Правильный тип данных в данном случае — BigInteger.
Но как только вы замените long -> BigInteger, то вы поймете, что ваш код никуда не годится.
Вычислять факториал от двух с половиной миллионов, причем внутри двух циклов — это прямо по Горькому: «безумству храбрых поём мы славу».
Хочтелось бы продолжения данной темы, с ответами на следующие вопросы:
1. Деплой приложения «одной кнопкой» без даунтайма (после обновления одного\нескольких компонентов).
2. Бекапы и развертывание приложения из бекапов после падения серевра(ов) (ситуация, типа «взрыв в датацентре»)
3. Наращивание количества серверов в случае роста нагрузки и распределение запросов между новыми серверами. Желательно, чтобы процедура добавления\удаления сервера из кластера реализовывалась также «одной кнопкой».
вот ее характеристики
Intel® Xeon® E3-1245 Quadcore
— 16 GB DDR3 RAM ECC
— 2 x 3 TB SATA 6 Gb/s HDD
— 7200 rpm (Software-RAID 1)
Стоит это удовольствие 57евро в месяц, т.е. примерно 2300р ( www.hetzner.de/en/hosting/produkte_rootserver/ex6).
За схожие деньги (2000р) у вас можно взять:
— Core i3-2100 3,1 Ггц
— RAM 4 Гб DDR3
— 2 х 0,5 Тб SATA–III HDD RAID1
Собственно вопрос: это действительно в 1.5-2 раза дешевле?
ПС. пожалуйста, не пишите про плату за установку, при таком раскладе он окупается очень быстро.
Собираюсь в Питер в конце апреля, хотелось бы уже заглянуть.
www.f1news.ru/news/f1-62666.html
gitvsmercurial.com/
[hooks]
commit.autopush = hg push
Так мне до ящика на gmail.com тупо письма на приходят. Написал в саппорт 2 недели назад — ни ответа, ни привета.
Самое смешно, что пользуюсь другим wmid, а этим wmid уже лет 5 не пользуюсь и он мне не уперся. Но хитрые вебмани нашли совпадения в этих кошельках (при попытке привязать кошелек к альфабанку) и вообще заблокировали доступ к обоим кошелькам(!). Чтобы восстановить доступ, мне пришлось послать скан пасспорта. Но и этого оказалось мало. Теперь мне нужно этот номер пасспорта ввести на сайте, а в ответ мне должно прийти письмо, которое не приходит.
Что делать — не знаю. Может кто присоветует?