У меня был очень похожий опыт, но я остановился на другом решении.
Я тоже тестировал скрипт на 8 ядерном 32 гб дедике с широким каналом и там еле еле 10 потоков шло.
Работающими решением оказалось взять 32 ядерный локальный сервер с 64 оперативки, на не очень быстром канале, с сокс5, на нем 100+ потоков запускалось.
Скрипт тот же, никаких оптимизаций не делалось.
Стоит конечно побольше, чем аренда дедика но тут уж зависит от окупаемости твоей темы, стоит ли оно того или нет.
Но соксы могут быть узким местом, по возможности нужно делать свои соксы. Для этого, можно брать дешевые VPS и установить сокс через опенсурсный софт microsocks для линукса (в инете полно инструкций по установке, занимает не более 5 минут вручную, и можно установку через БАС автоматизировать также на случай если нужны сотни соксов).
Брать нужный файл по датам
-
Всем привет!
Подскажите, мне нужно чтобы файлы менялись каждые 2 дня, т.е. я указываю в переменной по каким датам будет первый файл 1,2,5,6,9,10..... и в другой переменной по каким датам будет второй 3,4,7,8,11,12 и тд.
Сейчас у меня стоит смена по четным датам и нечетным.
[[DAY_OF_MONTH]]% 2 == 1и так
[[DAY_OF_MONTH]]% 2 == 0 -
@gobson said in Брать нужный файл по датам:
Подскажите, мне нужно чтобы файлы менялись каждые 2 дня, т.е. я указываю в переменной по каким датам будет первый файл 1,2,5,6,9,10..... и в другой переменной по каким датам будет второй 3,4,7,8,11,12 и тд.
А что подсказать то?
-
а еще проще:
( [[DAY_OF_MONTH]] & 2 ) == 0но будет работать начиная с нуля: 0,1,4,5,8,9,12,13...
если надо с единицы, то предварительно увеличить [[DAY_OF_MONTH]] на единицу -
@Vituskosoy said in Брать нужный файл по датам:
а еще проще:
( [[DAY_OF_MONTH]] & 2 ) == 0но будет работать начиная с нуля: 0,1,4,5,8,9,12,13...
если надо с единицы, то предварительно увеличить [[DAY_OF_MONTH]] на единицуПочти но не то, мне нужно именно указать по числам, потому что при данном решение если прогу перезагрузить то все собьется.
-
Эх так и не понял, в чем вопрос, но если надо просто чередовать файлы, тогда надо проверять вчерашний день, что бы узнать четный он или нет и от этого отталкиваться
-
@SimpleBot said in Брать нужный файл по датам:
Каждый месяц нумерация начинается с начала? Или может быть такое, что 29 и 30 скрипт работает с первым файлом, а 31 и 1 - со вторым?
все идет по кругу, если 31го числа нет, то берется файл 1го числа.
-
Вроде вот так должно работать
var startDate = "01-05-2021"; // придумайте стартовую дату startDate = startDate.split("-"); var startTime = (new Date( startDate[2], startDate[1] - 1, startDate[0])).getTime() - 1; var nowTime = Date.now(); if(Math.ceil((nowTime - startTime) / (48 * 60 * 60 * 1000)) & 1){ //работаем с первым файлом } else{ //работаем со вторым файлом } -
var date = new Date() date.setDate(date.getDate() - 1) [[EVEN_DAY]] = date.getDate()% 2 !== 0