У меня был очень похожий опыт, но я остановился на другом решении.
Я тоже тестировал скрипт на 8 ядерном 32 гб дедике с широким каналом и там еле еле 10 потоков шло.
Работающими решением оказалось взять 32 ядерный локальный сервер с 64 оперативки, на не очень быстром канале, с сокс5, на нем 100+ потоков запускалось.
Скрипт тот же, никаких оптимизаций не делалось.
Стоит конечно побольше, чем аренда дедика но тут уж зависит от окупаемости твоей темы, стоит ли оно того или нет.
Но соксы могут быть узким местом, по возможности нужно делать свои соксы. Для этого, можно брать дешевые VPS и установить сокс через опенсурсный софт microsocks для линукса (в инете полно инструкций по установке, занимает не более 5 минут вручную, и можно установку через БАС автоматизировать также на случай если нужны сотни соксов).
Вопрос по поводу минут/секунд в bas
-
Мне нужно, чтобы софт отдыхал столько, сколько идет видео. А видео может идти и 2:44 и 2:15 и 1:15 и 0:55 и т.д.
Я распарсил естественно минуты и секунды, но в функции "спать" возможен отдых только в милисекундах, я сразу откинул функцию, а в "эмуляция бездействия" уже можно было поставить секунды.
Но, как же сделать так, чтобы БАС понимал минуты? -
Либо, как вычесть из минут секунды и прибавить в эмуляции бездействия?
-
F Fox moved this topic from Support on
-
@SquidFroze said in Вопрос по поводу минут/секунд в bas:
Мне нужно, чтобы софт отдыхал столько, сколько идет видео. А видео может идти и 2:44 и 2:15 и 1:15 и 0:55 и т.д.
Я распарсил естественно минуты и секунды, но в функции "спать" возможен отдых только в милисекундах, я сразу откинул функцию, а в "эмуляция бездействия" уже можно было поставить секунды.
Но, как же сделать так, чтобы БАС понимал минуты?а в чём проблема минуты перевести в секунды, сложить с секундами и перевести в миллисекунды?
(2 * 60 + 44) * 1000 -
@SquidFroze said in Вопрос по поводу минут/секунд в bas:
@Fox А можете подсказать где именно эти все вычитания, сложения, деления делать?
В какой функции, в каком модуле?Прямо в действии "Спать", только тип данных нужно выбрать
expression -
НаМАРС лепишь? 😉
Там всё проще, чем думаешь. Выбирай короткие ролики, например до 20-ти сек.
Выбрать легко: парсишь длительность ролика и делаешь на нём replace : на пусто, получаешь несколько цифр без доп. символов. Теперь через IF отсеиваешь ролики длиннее 20. -
@SquidFroze Переменную продолжительности ролика. Например 12:25.
Делаешь замену : на пусто и получаешь 1225.
Затем if [[PR_ROL]] <= "20", то смотрим, иначе ищем дальше.
