Information
- Rating
- 40-th
- Location
- Турция
- Date of birth
- Registered
- Activity
Specialization
Разработчик приложений, Веб-разработчик
Ведущий
PHP
MySQL
Базы данных
Разработка программного обеспечения
Проектирование баз данных
Оптимизация кода
Многопоточность
Git
Golang
SQL
Добавил, санитизацию имени клиента и валидацию с автозаменой в форме
Да хорошие идеи, сейчас QR в формате AmneziaWG, сейчас действующие конфигурации будут перестраиваются, я пока не нашел способ бережного ) обхода, попробую решить, вообще хорошо было бы все протоколы внедрить которые есть в AmnaziaVPN
да, можно сделаю в отдельной ветке
добавил endpoints для API
POST /api/clients/{id}/set-expiration - Set client expiration date
Parameters: expires_at (Y-m-d H:i:s or null)
POST /api/clients/{id}/extend - Extend client expiration
Parameters: days (int)
GET /api/clients/expiring - Get clients expiring soon
Parameters: days (default: 7)
добавил cron в докер
# Проверить, что cron запущен
docker compose exec web ps aux | grep cron
# Посмотреть задачи cron
docker compose exec web crontab -l
# Запустить вручную
docker compose exec web php /var/www/html/bin/check_expired_clients.php
# Посмотреть логи
docker compose exec web tail -f /var/log/cron.log
Спасибо за отзыв! Сделаю.
+ Скорее всего сегодня протестирую и выложу, возможность добавление сроков для клиентов, бекапы серверов
На самом деле тема не такая очевидная как Вам кажется, думаю многим пригодиться, не все такие задачи решают за 2 секунды (мне потребовалось 3 дня чтобы найти способ), все пока работает без блокировок от Телеграмм, пока не является нарушением. У нас сейчас 28 пользователей платформы типа https://nk.coursefactory.pro/ пока проект развивается, в каждом кабинете уже добавлено прилично групп и каналов.
Если пользователь находится в других группах то фиксируется только тот под чей ID он импортировался первым, если нет юзернейма то естественно не импортируется и не пойдет по партнерской программе.
Не спамить сейчас не модно, попробую объяснить идею проще, например у Вас есть Телеграм канал/группа на 50000 человек, я Вам предлагаю провести на Вашем канале стрим с продвиженим моих курсов актерского мастерства, Вы регистрируетесь на моем сайте для получения партнерского вознаграждения и даете мне права для того чтобы я смог спарсить все логины под Ваш ID, потом я провожу тестовые занятия на Вашем канале и предлагаю купить мои курсы. Допустим регистрируеся на мой сайт пользователь @xxxxxxx и он пришел получается с Вашего канала, тогда при покупке курса за 80000 рублей, Вам начисляют 6000 рублей по партнерской программе, а если пользователь @xxxxxxx пригласил друзей то Вы еще получите вознаграждение и от его друзей и друзей друзей (в нашем проекте партнерка 3 уровня)
Наглядность для разработчика, виден полный путь, можно сильно поспорить насчет времени запроса, надо сравнить и выбрать лучший вариант, сейчас пишу 2 часть статьи с тестами моего алгоритма нахождения минимального пути в графе с помощью матрицы 5xN по сравнению оптимизированным алгоритмом Дейкстры
Мой метод предоставляет интуитивную наглядность и гибкость для работы с произвольным количеством дочерних элементов, что упрощает внедрение и сотрудничество в команде. Он также позволяет выполнять специфические выборки одним запросом, как и Nested Sets, но с меньшей сложностью и более простым пониманием структуры данных, что может быть преимуществом в MLM-структурах.
Сделаю статью часть 2 где выложу примеры и графики, на Github выложил коды оптимизированного Дейкстры и пример теста (benc.php), так же Вы можете посмотреть рабочий код https://phpize.online/s/YC
Я просил ссылку на алгоритм или готовый код для того чтобы сравнить алгоритмы на производительность, а так же код размещу на Github с настройками и генератором случайных графов для заполнения матриц.
Алгоритм Флойда-Уоршелла находит кратчайшие пути между всеми парами вершин во взвешенном графе, имеет временную сложность O(|V|^3) и работает с отрицательными весами рёбер (но не с отрицательными циклами). Алгоритм 5xN находит кратчайший путь между двумя вершинами, имеет временную сложность O(|V| * |E|) и не учитывает отрицательные веса рёбер и циклы. Выбор алгоритма зависит от задачи и структуры графа.
Да Вы правы для графе с 5 рёбрами и 5 вершинами алгоритм Дейкстры действительно будет выполнять гораздо меньше операций, чем я указал ранее. Ваш расчет операций (5 * (log(5) + log(5))) корректно отражает количество базовых сравнений для такого случая, что составляет около 30. Выше я написал, что проведу тестирование, могли бы Вы написать ссылку на алгоритм Дейкстры который максимально оптимизирован или есть готовая быстрая библиотека на php или golang?
Я искренне рад, что моя статья привлекла столько внимания и вызвала интерес у читателей. Обязательно выделю время на проведение бенчмарков с разными вариантами алгоритма, чтобы сравнить его производительность с алгоритмом Дейкстры и другими алгоритмами поиска кратчайшего пути. Возможно, в процессе тестирования я смогу определить потенциал для дальнейшей оптимизации алгоритма 5xN, что позволит его использование стать еще более эффективным в различных сценариях. Благодарю за предложение и за активное участие в обсуждении.
Пример кода лежит на Git в папке с примерами get_users_by_level.php
Ваш вариант будет выглядеть
все варианты решения я не предусмотрю
Спасибо за интерес к этому алгоритму, я еще раз все проверю и обновлю на git если найдутся ошибки