Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 Laravel 5.x » Запрос на выборку родственных записей. » 09.02.2018 18:24:28

sepgg
Ответов: 0

Версия Laravel: 5.5
Версия PHP: 7.0.22
Операционная система и её версия: Linux Mint 18.2 Sonya
Вендор и версия сервера БД: mysql  Ver 14.14 Distrib 5.7.21, for Linux
Вендор и версия Веб-сервера: Apache/2.4.18
Медод подключения PHP: libapache2-mod

Задача, что должно происходить _в целом_, техническое задание:
Имеется модель товаров со связями 1-1 к категории и городу.
Необходимо выбрать n случайных записей той же категории, в том же городе, если в городе нет, тогда 4 случайных из той же категории, ну и если вообще нет 4, тогда сколько есть.
Что произошло, текст ошибки, если есть:
Повесил сервак. В логах говорит, что недостаточно памяти для выполнения скрипта.
Варианты/догадки, почему это произошло:
Не оптимизирован запрос, или вообще не верен.
Код:
app\Ad.php

    public function related(){
        $city_id = $this->city_id;
        $cat_id = $this->category_id;
        $ads = Ad::where('publish', 1)->where('category_id', $cat_id)->where('id', '!=', $this->id)->inRandomOrder();
        if($ads->count() > 4){
            $res = $ads->where('city_id', $city_id);
            $count = $res->count();
            if($count >= 4){
                $res = $res->take(4)->get();
            }else{
                $res = $res->union($ads->take(4-$count))->get();
            }
        }else{
            $res = $ads->get();
        }
        return $res;
    }

#2 Re: Laravel 5.x » Не сохраняются сессии » 08.06.2015 07:17:48

Вобщем проблемы была в настройках сессии, а именно
по умолчанию стояло 'secure' => true , поставил false, все заработало.
Так, что если кто столкнется с проблемой - вот...

#3 Laravel 5.x » Не сохраняются сессии » 06.06.2015 11:52:47

sepgg
Ответов: 1

Вобщем Session::all() возвращает только token.
Посмотрев в storage/framework/sessions, заметил что при каждом запросе создается новый файл сессии.
Подскажите где косяк?

#4 Re: Laravel 4 » Блокировки кэша » 26.03.2015 14:07:35

Ну нет, далеко не подобное, это просто аналогичный пример был.
Вообще вот смысл того, что я хочу конкретная задача:
Выполнить одновременно не более 14 запросов и быстро сохранить полученный результат.
Вот собственно и вопрос куда и как.
Ну куда понятно - в сессию.
А вот как?
file - не катит была такая реализация до сего момента, нагрузка высокая, поэтому ОЧЕНЬ сильно падает производительность именно поиска-чтения-записи.
memcached и redis подходит, но трут свои же записи.
Вот как реализовать хз....
Да и еще...
Можно ли в процессе работы использовать и file и memcached сессию?
Ну т.е. как то динамично менять драйвер?

#5 Re: Laravel 4 » Блокировки кэша » 26.03.2015 11:46:49

Структура данных - json
Ну если на пальцах то смысл запросов таков:
есть например несколько товаров, вот по ним я делаю запросы.

products.forEach(function(product){
 writeInfo(product.name,product.val);
});

function writeInfo(pName, pVal){
$.ajax({
 url: 'some.php',
 data: {name:pName, val:pVal},
 success: callback
});
};

, а на серве записываю для каждого запроса.

Session::put('key_'.Input::get('name'), Input::get('val'));

Вот если взять

Session::get('key_name1');

, то он видит, т.е. записывается все, но если брать после выполнения всех запросов, уже видит только один,
судя по всему, последний выполнившийся.

#6 Re: Laravel 4 » появилось сообщение <<<<<<< HEAD ... » 25.03.2015 17:51:36

Во-первых Git - не гнида)) 10000 раз уже мою жопу спасал))
Во-вторых он не решил, что в коде ошибка, а указал на конфликт при мерже или пулле, который сам разрешить не смог.
Такое бывает, когда ты и на тесте и на продакшене делаешь изменения.

Когда получше познакомишься, спасибо ему еще говорить будешь)

#7 Laravel 4 » Блокировки кэша » 25.03.2015 17:21:14

sepgg
Ответов: 5

Кто-нибудь сталкивался?
Есть у кого готовые наметки?

Вообще нужно решение для следующего, может кто подскажет.

Клиент отправляет на серв 10 ajax'ов, каждый хочет что то дописать в кэш.
Но т.к. скорость выполнения запроса отличается не сильно, очень часто часть инфы переписывает друг друга.

Посоветуете что нить?
Последовательные запросы не эффективные из-за тупого бэкэнда.
Файловый кэш так же не эффективен из-за большой нагрузки на сервер.

#8 Laravel 4 » Сессии » 23.03.2015 21:15:54

sepgg
Ответов: 1

Народ, помогайте )
Проект средней нагрузки.
драйвер стоит - native

При просмотре статистики наблюдаю, что 90% времени запроса занимает
Symfony\Component\HttpFoundation\Session\Storage\Proxy SessionHandlerProxy::read()

Время ожидания доходит аж до минуты...

Есть какие-нибудь мысли?
Как ускорить все это дело?

Подвал раздела