• С каким интервалом времени установить команды на cron?

    Можно использовать flock (lock-файл) для синхронизации процессов и не позволять определенным работать параллельно
    https://simpleit.rocks/linux/shell/prevent-running...

    P.S. Как рекомендовали в комментариях, правильнее работать с очередями задач, а не через крон. Если в проекте нет RabbitMQ / NATS и т.п., наиболее легковесным вариантом будет Redis
    Ответ написан
    Комментировать
  • С каким интервалом времени установить команды на cron?

    CityCat4
    @CityCat4
    Внимание! Изменился адрес почты!
    И если процедура будет активна, но запустится другая команда, то она просто скипнет свою очередь и не выполнится.

    Тогда через крон пускать нельзя, нужен менеджер очереди.
    Ответ написан
    Комментировать
  • Какую базу данных использовать для такого проекта?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Тут подходит любая реляционная SQL БД потому что нет противопоказаний. Реляционку мы выбираем
    уже более 30 лет как default вариант и почти не ошибаемся.

    Когда задача имеет признаки ярко выраженной high-load системы - мы делаем ей частичную денормализацию
    и раскладываем ее в NoSQL Key-Value решение. Но это не про улучшение а это про неизбежность. У нас нет выхода просто.
    Иначе мы клиенту не сможем быстро отдать какой-то резуальтат.

    Когда задача имеет ярко выраженную документную природу (нет спецификации на values) - мы берем MongoDb/CouchDb.

    Когда задача хранит граф и ищет в графе и вообще требует графовых алгоритмов - то мы берем Neo4j или ей подобные.

    Когда задача хранит данные измерений (телеметрия) - то предпочтительно взять InfluxDb или ей подобные. Здесь-же мы предполагаем что у нас - не будет joins а будет только измерения в диапазоне времени.

    Но в данном ТЗ и на картинке обычная SQL БД (MySQL/Postgres) вполне себе нормально справляется.
    Ответ написан
    Комментировать
  • Можно ли сделать так, чтобы когда электричество дешёвое, сервер работал на максимум?

    Планировщик задач, который по времени переключает режимы энергосбережения.
    https://learn.microsoft.com/en-us/windows-hardware...
    Ответ написан
    Комментировать
  • Как быстро отправить 1 миллион запросов на внешний API?

    @falconandy
    Навскидку придумался какой-то такой алгоритм, возможно некорректный:
    0. преполагается видимо, что константная точка неизвестна, а сервис возвращает расстояние от неё до переданной точки
    1. берете две произвольные (но разные) точки P1, P2 из своего миллиона и отправляете два запроса, получая два расстояния R1, R2
    2. неизвестная константная точка находится в точках пересечения двух окружностей с центрами P1, P2 и радиусами R1, R2
    3. по идее таких пересечений будет два, возможно одно, если повезет
    4. если одно, то оно и будет той самой неизвестной константной точкой
    5. если два, то отправляете каждую на сервис и проверяете, до какой расстояние будет нулевое - это и будет та самая неизвестная константная точка
    6. локально находите ближайшую к теперь уже известной константной точке из своего миллиона

    В результате, максимум 4 запроса к сервису.
    Не забываем про погрешности при работе с числами.
    Ответ написан
    7 комментариев
  • Какую SQL базу данных под Linux лучше использовать с FTP через FUSE?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Никакую базу, имхо, не нужно использовать с "FTP через FUSE".
    Ответ написан
    4 комментария
  • Равноценно ли использование MariaDB вместе MySQL?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    MariaDB несколько отошла от MySQL с момента создания форка.
    https://mariadb.com/kb/en/mariadb-vs-mysql-features/
    Ответ написан
    Комментировать
  • Какие есть примеры построения большой организационной структуры?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Ох и амбиции. И что за перфекционизм в отношении Postgresql?

    Не знаю как автор посчитал миллиард. Это если все население планеты Земля составляет порядка 8 млрд.
    И что мы возьмем целую страну и инвентаризируем ее чтоб получить такое число?

    Для графовых БД существует не Postgresql а специальные БД типа Neo4j. Но еще до того как ты доберешся
    до графовых БД - задание может многократно измениться и выйдет что граф - рудимент. Так часто бывало.
    Вообще очень малое число задач требуют именно графов. Если табличка отражает семантику модели
    то можно и ее использовать. Только с условием не решать в ней задачи о рукопожатиях.

    По поводу того что в таблице что-то там кого-то убивает на 1 млрд. Я отвечу так что если вы строите OLTP
    систему то в ней этот миллиард никогда не будет использоваться целиком. Там будут горячие области.
    Их можно каким-то образом кешировать или алгоритмически пред-выбирать. Или брать key-value системы если ТЗ позволяет. Для них что миллиард что триллион все безразлично. Не забывайте только поднимать новые ноды и подкидывать диски в облачко. Или если речь идет
    о BigData к примеру то там есть свой техно-стек. Например Apache Spark / GraphX. Хотя я с модулем GraphX
    не работал ни разу. Но биг-дата запросы обычно никогда не запрашивают одного физ-лица или одну
    единицу тех-средства. Биг дате ставят задачу собрать всё про всех и отгрузить отчет в виде другой таблички
    или DataMart. И на это ей дадут пару часиков а то и день. Поэтому разговоры относительно убивания
    производительности - очень можно смягчить.

    Вообще такие сложные системы не обязаны строиться поверх Postgres или Neo или Spark. В их разработке
    вполне можно использовать целый pipeline из технологий где например Postgres будет просто одним
    из элементов. Или одним stage.
    Ответ написан
    3 комментария
  • Как защитить свое api от ddos-атак?

    @rPman
    Хочу напомнить - ddos это не только про сетевые атаки, а любые атаки, направленные на нарушение работы приложения,.. т.е. если злоумышленник найдет как заставить твоих операторов обрабатывать тысячи и миллионы заявок, которые никакой пользы не принесут (с них не будет получен доход) - то это тоже 'атака на отказ обслуживания', ведь операторы будут заняты фейковой работой вместо обслуживанием нормальных клиентов.

    Готовых решений ты и не найдешь, кроме как от ограниченного типа атак (сетевых) и тут самому лучше не заморачиваться, а воспользоваться сервисом провайдера.

    Правильная защита - это анализ твоей бизнес модели и ее процессов и тщательное тестирование на всех, включая нестандартных и необычных, ситуациях.

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

    p.p.s. ограничивая пользователей, всегда предлагай им действия, которые позволят этот лимит убрать, чтобы ошибочно наказанные пользователи не сидели перед экраном - 'вы забанены, идите на..й'
    Ответ написан
    Комментировать
  • Где хранить токены авторизации в браузере?

    Maksclub
    @Maksclub Куратор тега Веб-разработка
    maksfedorov.ru
    Ответ написан
    Комментировать
  • Как тестировать код работающий через очерди?

    vabka
    @vabka
    Токсичный шарпист
    Как работает, так и тестировать.
    Если тестируется продюсер - запустить его и посмотреть, что нужное сообщение появилось в очереди (сделать тестового консюмера).

    Если тестируется консюмер - запихнуть сообщение в очередь и посмотреть, что консюмер отреагирует на него ожидаемым образом за отведённое время. (Делаем тестового продюсера)
    Ответ написан
    Комментировать
  • Не открываются порты 8890, 8891, 5222. Что делать?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Никто их не блокирует. Их просто никто не слушает. Не запущена ни одна задача, которая бы слушала что-то по TCP на этих портах.
    Ответ написан
    Комментировать
  • Не открываются порты 8890, 8891, 5222. Что делать?

    @Zerg89
    Запустить службы которые эти порты будут слушать
    Ответ написан
    2 комментария
  • Почему Linux постоянно обращается к внешнему диску во время простоя?

    @rPman
    Если диск примонтирован без опции noatime, то любое чтение файлов будет вызывать записи на диск даты последнего чтения файлов

    Поэтому по совету выше или не только процессы на запись но и на чтение
    Ответ написан
    Комментировать
  • Как восстановить файлы после reset --hard?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    Восстановить очень легко, так как гит ничего не удаляет из репозитория, по крайней мере сразу.
    Команда reset лишь переместила указатель ветки. Полностью удалить что-то крайне сложно.
    Вы можете посмотреть через git reflog где был указатель до этого и вернуть его туда обратно.
    git reset --hard HEAD@{1}
    Данная команда вернёт ветку на состояние, помеченное на вашем скрине как HEAD@{1}
    Либо можно скопировать непосредственно sha-хэш места, куда хотите вернуться.

    Затем повторить отмену последнего коммита, но уже правильно:
    git reset HEAD~1
    Такая команда не будет изменять рабочий каталог, а значит ничего из него не удалит.
    Ответ написан
    1 комментарий
  • Как корректно изменить DNS запись для сервера при миграции на другой хост?

    SignFinder
    @SignFinder
    Wintel\Unix Engineer\DevOps
    Выставить суток за двое до миграции TTL в 5 минут для нужной DNS записи.
    Изменить значение DNS - будет "шов" в 5 минут.
    После миграции вернуть TTL обратно, ибо 5 минутный TTL создает лишнюю нагрузку.
    Ответ написан
    Комментировать
  • Какой ноутбук выбрать для Linux?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Хочу заниматься саморазвитием в сфере кибербеза и компьютерных сетей, и хочу поставить Дебиан на ноутбук


    Если ты только начинаешь, то поставь дебиан в виртуалку. Запускаешь ее в full screen и все, зачем целый ноутбук покупать если ты только захотел начать заниматься?
    Ответ написан
    2 комментария
  • Как произвести на свет сию программу?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Для создания сей программы есть два пути:
    1. Самостоятельно изучить Python, равно как и программирование, как таковое. То есть полностью погрузиться в тему, в том числе изучить сопутствующие библиотеки, их плюсы и минусы.
    2. Составить ТЗ и заказать работу на фрилансе.

    В любом случае вопрос отпадает сам собой. Таков путь, ибо задания здесь запрещены.
    Ответ написан
    Комментировать
  • Как можно экспортировать объект кадастровой карты в информацию с координатами?

    freeExec
    @freeExec
    Участник OpenStreetMap
    Заказывать выписки из кадастра
    Ответ написан
  • Сильно ли тяжело для базы данных innoDB 1 500 таблиц?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    Для базы это ерунда
    А вот для разработки будет проблема, потому что автор, наплодивший этот зоопарк, явно не прочитал даже начальных сведений про базу данных, и не понимает, зачем в ней нужны таблицы.
    А программистская привычка с подозрением относиться к повторениям ещё не выработалась.

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

    Я настоятельно рекомендую книгу Святослава Куликова "Реляционные базы данных в примерах", она свободно доступна для скачивания. В ней как раз и даются основы проектирования баз данных.
    Ответ написан
    Комментировать