DmItrENub, а ты откуда curl взял?
у тебя есть варианты:
* Официальные бинарники
* версия от cygwin (это собранный тулчейн linux под windows, эмулирующий именно linux подсистему, там даже пути до файлов как в linux но нативно под win, найти можно наверное все версии, но поставить старую сложно)
* поставить wsl (рекомендую) - тут ты можешь выбрать любую версию linux в качестве базовой или даже развернуть в дефолтной docker/lxc/chroot нужную версию с помощью к примеру debootstrap
* поставить под виртуальной машиной linux
Ну что значит не автоматически
ты пишешь скрипт, в консоль вставляешь команду на его загрузку и запуск, отходишь на несколько минут, он сигнализирует об окончании и отправляет файл с результатом на загрузку (это может быть вплоть до архива с файлами, на javascript есть и библиотеки для архивации, при желании)
Консоль браузера это для примера привел, разовые операции там более чем удобны. Нужно сложнее - плагин greasemonkey, добавление пользовательских скриптов, добавляемых на страницу в зависимости от url
Ок, у меня успешно использовался следующая модель - пишется примитивное приложение на любом удобном языке и фреймворке с desktop gui и поддержкой браузерных контролов (я использовал .net WebBrowser на internet explorer контрол и java WebEngine на webkit) - одно окно с браузером без элементов управления, будет доступ к компонентам браузера и страницы нативно из приложения, без прослойки как у selenium (хотя последний само собой более верный), я помню .net приложение делал headless, и запускал на linux vps-ке, там автоматом вместо IE получался firefox.
как новичку я настоятельно рекомендую не использовать selenium, для начала все можно сделать просто открыв консоль разработчика браузера на нужной странице по f12, и там в консоли можно написать javascript
Пример скрипта, получающего текст вопроса qna.habr.com $('.question__body').text()
получение результата отдельный разговор, я скриптами делаю запросы http get или post, отправляющие собранные данные на мой сервер (могут возникнуть проблемы с CORS и запретом смешивать http/https, все решаемо), как вариант можно генерировать тут же в браузере документ и давать его на загрузку, это вообще ничего особого не потребует
Пример кода, открывающий страницу с сгенерированными данными формата csv (в новом окне, обычно все запрещают новые окна открывать, но там сверу предложено будет открыть)
p.s. я писал про симуляцию поведения пользователей, если тебе нужно одновременно симулировать поведение сразу большого их количества, задачи разные стоят, часто этим пользуются спамеры, или обход лимитов сайта на быструю загрузку данных одним пользователем и т.п., так вот чтобы такое делать с помощью selenium и аналоги, потребует на каждого симулируемого пользователя (особенно если надо разные прокси) запускать отдельный браузер, каждый из которых сожрет оперативку и займет процессор, десяток другой и не слабая машина уже нагружена.
Ну вот, основная нагрузка получается из-за групировке по таблице accounts_audit - full table scan, кстати добавь индексы по одновременно двум полям, указываемых в group by, и само собой по полям, указываемым во where
Если индексы будут использоваться но все же будет медленно либо к примеру индексы будут замедлять запись то используй партицирование как я предложил.
Хотя, если в фильтрации у тебя используется плавающая дата (2022-05-20 00:00:00), то предлагаемый мной метод не очень подойдет (точнее подойдет но кодить придется заметно), грубо говоря ты создаешь таблицу accounts_audit_grp, куда складываешь (однократным скриптом по окончанию периода) все 'старые данные' сразу с агрегацией min но в пределах этого интервала, раз в например сутки (если твоя дата фильтрации меняется как раз с шагом в сутки) тогда min будет вычисляться точно таким же запросом, и самое главное, эти старые данные удаляй из изначальной таблицы accounts_audit (ну в архив без индексов перемещай)
данные по текущему интервалу досчитывай по основной таблице
т.е. у тебя будет таблица accounts_audit_grp с полями parent_id,field_name,max_date_created,min__date_created,grp_date где min и max значения в пределах grp_date и grp_date+размер интервала
попробуй все же вспомнить, что менял или делал между 'не глючило' и 'начались фризы'
операционная система установлена на ssd диск? игры тоже?
графики ничего плохого не показывают
можешь записать звук (сторонними средствами, например смартфоном, поставь фоном запись а потом вырежи нужный момент любой программой редактирования звука), когда происходит
не бывает спутникового wifi, бывает роутер который получает интернет через спутник, но сам wifi у него локальный земной, а значит подключившиеся к нему между собой имеют быструю связь (медленнее чем по проводам но десяток миллисекунд пинг)
можно, но я считаю не нужно
база данных, типовая, на среднем железе, способна обрабатывать сотни запросов в секунду, при должном тюнинге - тысячи
у тебя будет больше?
у тебя немного неверное представление инвалидации данных... кеш это предположение что данные не изменились, гадать типа - ну 30 минут данные не будут меняться странно, а если изменятся? а ты считаешь что не изменились?
виртуалки это гибкость расширения и управления, нельзя складывать все софт, хранение и управление в одном месте так как даже при простом обслуживании одного, можно задеть все остальное (банальная перезагрузка)
плюс админ из будущего тебе огромное спасибо скажет, виртуалку можно запустить практически на любом железе, когда как перенос уже работающего может не пройти банально по причине отсутствия поддержки, сколько на этом копий сломано жуть
2 сервак это резервирование, но главное гипервизоры виртуальных машин позволят выбирать (причем даже без остановки работы) как использовать мощности второго, как резерв или как распределение нагрузки
Наличие готовой и настроенной машины уменьшает время простоя и срок восстановления после сбоя с суток (а в условиях санкций - недель) до минут
Как именно в виртуальной машине подключено сетевое устройство?
Еще, про ip адрес, либо в обоих сетях должно быть устройство с функцией DHCP либо нужно задать ip адрес вручную для каждого подключения.