- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

Переиграть и победить: как анализировать конкурентов для продвижения сайта
С помощью Ahrefs
Александр Шестаков
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Кто-то делал что-то подобное? Есть желающие поэкспериментировать и разработать решение для использования в своих проектах?
Знаю есть несколько типа фреймворков для этого. Но у меня всегда возникает желание сделать по своему. Кому это интересно ?
Посмотрел я на те фреймворки, как обычно жуть-жуткая, статьи на эту тему, кто во что горазд как обычно и exec, popen, proc_open, system, passthru, stream_select, curl, fibers.
Есть мысль сделать Loop на socket с fibers, ещё может с stream_select и proc_open. У кого по этому поводу возникали какие либо мысли?
если вы хотите сделать универсальное решение, то у вас получится такая же "жуть", а если просто запустить параллельно процессы, то для этого и фреймворка не надо никакого:
если вы хотите сделать универсальное решение
Не то чтобы универсальное, а чтобы было нормальное решение для некоторых задач, например обработок больших файлов, сохранение некоторого состояния которое могли использовать разные пользователи, выполнение запросов в базу с синхронизацией и др.
Например запустить один файл который будет прослушивать сокет получать задание запускать поток, получать результат и возвращать. Пока конкретных задач не стоит, но при создании разных сайтов думаю может возникнут некоторая потребность в распределённой работе.
Не то чтобы универсальное, а чтобы было нормальное решение для некоторых задач, например обработок больших файлов, сохранение некоторого состояния которое могли использовать разные пользователи, выполнение запросов в базу с синхронизацией и др.
Например запустить один файл который будет прослушивать сокет получать задание запускать поток, получать результат и возвращать. Пока конкретных задач не стоит, но при создании разных сайтов думаю может возникнут некоторая потребность в распределённой работе.
если ваш демон, слушающий сокет будет отправлять результат, то вам надо ещё придумать как читать результат с потока, в принципе если это будет простая рабочая обёртка, вполне будет нормальным решением, но здесь есть лишняя нагрузка на сам демон, потоки можно запустить и без него, я бы не тратил ресурсы сервера на демона
потоки можно запустить и без него, я бы не тратил ресурсы сервера на демона
По сути сервер и так является многопоточным. Вот только ресурсы тратятся каждый раз в каждом потоке выполняется допустим чтение из базы одних и тех же данных, не проще ли сделать Loop в который отправить нужные данные, а потом получать при необходимости эти данные без запросов в базу или с другого ресурса и тд.
для этого, вроде уже есть memcache и shared mеmory https://www.php.net/manual/en/shmop.examples-basic.php, хотя вот для shared mеmory удобная и простая обёртка бы не помешала
UPD: на phpclasses уже кто-то создал и выложил такую обёртку https://www.phpclasses.org/package/4994-PHP-Store-and-retrieve-information-in-shared-memory.html
Пожалуй, все что надо:
https://www.php.net/manual/en/book.pthreads.php
Пожалуй, все что надо:
Модуль считается неподдерживаемым и мёртвым.
ЗЫ. Не очень хочется использовать, то что может перестать работать.
И не валить всё в одну кучу.
БД создана для того, чтобы с неё было чтение данных. Всякие InnoDB и правильные настройки позволяют в память запоминать данные, чтобы быстро их оттуда доставать.
А вот уже структуру таблиц и запросы, вытекающие из них, должен делать разработчик. И вот тут у нас просто пропасть. Т.к. многие считают, что НЕЛЬЗЯ делать много простых запросов. Лучше 1 запрос с 15 JOIN, это наверное показывает их умение или тешит самолюбие, а потом "Ой что-то у нас тормозит сайт".
PHP асинхронность, многопоточность, параллельность
Сначала бы понять для чего все эти слова?
Асинхронность в коде? Увольте. Лучше сделать микродемонов, чтобы выполняли задачи по крону.
Многопоточность? Для чего? ОС и так распределяет задачи по ядрам. Каждому вызову выделяется свои потоки, так же как каждый запрос в БД использует свободно ядро.
Параллельность? Для чего?
Если автор задумал, что: "ВАУ! Я сейчас всё это реализую, а тупые разработчики НИКТО не хочет это делать из популярных CMS". Забывает 1 вещь, что за всё надо платить.
Любые алгоритмы, которые будут включать все эти "3 слова" имеют накладные расходы (процессор, сложность кода, специальные условия на сервере, ограниченность применения и т.д.). И в какой момент расходы могут превышать ресурсы цели для решения, которой они были созданы.