Arcos
Как вызвать рендеринг компонента blade из php кода? Поясню. Есть необходимость сделать хелпер на базе компонентов blade.
Alexander
return view(шаблон, параметры) ?
\/
https://toster.ru/q/533588 привет. помогите с задачей( что-то я совсем мозг расплавил
Maksim (Ellrion)
https://toster.ru/q/533588 привет. помогите с задачей( что-то я совсем мозг расплавил
так а зачем schedule командой запускать долгую джобу. делай длинную работу именно по крону.
\/
у меня длинных задач боле 3-10 минут штук 5. кроме этого нужно чтобы они "не пересекались"
\/
сама с собой
Maksim (Ellrion)
ну так я и говорю зачем тогда очередь тебе? крон с защитой от перезапуска. делай что нужно просто в консольной команде. команды запускай по крону с защитой от перезапуска. в новой ларе есть кстати $schedule->job(new SomeJob)->... - возможно она тебе поможет что бы логику из джоб не переносить в команду (я с ней не работал правда, мб это просто помещает в очередь и тебе не подойдет, сам поизучай)
\/
$schedule->job тоже запускает синхронно, если job длинный, то все фризит
\/
даже не стал - видишь простой пример - размер очереди возращает получается рандомно
Maksim (Ellrion)
$schedule->job тоже запускает синхронно, если job длинный, то все фризит
да посмотрел ->job создает CallbackEvent а он не умеет в бекграунд. тогда вариант с переносом логики в консольную корманду, которые умеют в запуск в бекграунде самое простое решение тут.
\/
это как раз была попытка перед диспатч
Владислав
Rabbit заюзать, для очередей, как вариант. Там и стаистика, и графики будут.
\/
Rabbit заюзать, для очередей, как вариант. Там и стаистика, и графики будут.
ну если в "родном" horizon так - что меня ждет еще в раббите)
Maksim (Ellrion)
а как через шедулер вызвать в беке?
->command('...')->runInBackground()->withoutOverlapping()->...
\/
runInBackground не вижу в мануале такого(
Владислав
ну если в "родном" horizon так - что меня ждет еще в раббите)
Хз, юзал его на кастомном проекте (там сайлекс был вообще), всё ОК было.
Владислав
Сложность только в том, чтобы прикрутить.
\/
https://laravel.com/api/5.6/Illuminate/Console/Scheduling/Event.html#method_runInBackground
\/
вижу
Maksim (Ellrion)
runInBackground не вижу в мануале такого(
раньше все команды по дефолту так и запускались, ломаться начало с 5.2 версии. грахем пидр ввели келбеки, стали запускаться в бекграунде только если нет келбеков, дальше больше, в итоге получилась фигня. имхо неприятно ожидать такое поведение как сейчас от планеровщика.
Владислав
То есть, всё-таки, лучше юзать сторонние инструменты.
Владислав
Чтобы не было "нежданчиков"
Maksim (Ellrion)
ну нежданчиков бояться - лару не юзать
\/
конечно теперь так мне и очередь не нужна - мьютекс будет в команде
Владислав
Ну не могу сказать, что тут всё настолько непредсказуемо )
\/
жаль, что с очередью такая засада - тривиальная вещь, что нужно не более чем N задач в воркере и лажает
Владислав
https://packagist.org/packages/spinx/sidekiq-job-php
Владислав
Попробуй вот этот пакет, как вариант
Владислав
sidekiq - это рельсовый планировщик.
Владислав
Вроде, годно работает, по крайней мере, не слышал, чтобы на него были жалобы.
Владислав
П.с.: а, он для сфинкса, похоже. Тогда глянь, есть ли похожие.
\/
так проблема в очереди, а не шедулере
Владислав
Не в этом ли проблема?
Владислав
$schedule->job тоже запускает синхронно, если job длинный, то все фризит
Владислав
Я подумал, что тебе нужен асинхронный запуск, не?
\/
это было как вариант решения проблемы с запусками, но не очередью
\/
молчат с решением и в слаке по ларке и стэковерфлоу. если не найдется решения в течении дня, буду делать запуск в фоне так( без очереди
\/
ну мне так и надо(
\/
$schedule ->call(function () { if (Queue::size('test_queue') == 0) dispatch(new TestJob())->onQueue('test_queue'); }) ->everyMinute();
\/
вот такой код заработал
Vitalii
Есть у кого что почитать по проектированию масштабируемых систем? У меня будет нное кол-во сторейджей и воркеры которые будут обрабатывать то, что на них хранится и я не знаю как все это организовать, что бы потом без боли можно было еще 1 сторейдж доставить или еще 1 машину с воркерами добавить. И что бы при программировании не думать о сторейджах вообще, что бы все прозрачно было🙄
\/
интересная тема - я бы тоже почитал - только как множить воркеры на другие серваки, если уперся в память и проц
\/
$schedule ->call(function () { if (Queue::size('test_queue') == 0) dispatch(new TestJob())->onQueue('test_queue'); }) ->everyMinute();
причем я по дефолту нигде сначала коннект в редис не прописывал, только для проверки длины очереди сделал так - это специально на случай если я задачу не в тот воркер отправлю
Alex
Привет. $companies = Cache::remember('companies', 120, function () { return Companies::paginate(2); }); Пагинация не будет работать с кешем?
Alex
Всегда возвращает первые 2 записи
Maksim (Ellrion)
ну как бы логично. для кэша пагинации надо писать не особо тривиальный код
Maksim (Ellrion)
ну в самом простом варианте можешь написать $companies = Cache::remember('companies-' . Paginator::resolveCurrentPage(), 120, function () { return Companies::paginate(2); });
Max
Ребята, нужен совет Разрабатываю SPA приложение, используется lodash шаблонизатор, в чем проблема: Есть лист айтемов, апи по умолчанию не присылает нужный мне статус - он расчитывается по данным которые апи присылает Айтемов много и для оптимизации, что бы не гонять цикл в контролере, я создаю статус для каждого айтема в вьюхе, так как цикл там и так уже гоняется Код выглядит не красиво, но на оптимизации сказывается хорошо, что можете посоветовать, так и оставлять или как-то переписывать?
Anton
включить здравый смысл
Maksim (Ellrion)
это сколько же айтемов должно прилетать что 1 лишний цикл по ним дает падениет в скорости
Max
тысяч 10 Вложеность циклов большая
Maksim (Ellrion)
10 тысяч чего то шаблонизируется? оО
Max
Я привязан к апихе, могу работать только с таким видом данных, которые мне прилетают
Varyen
ты же можешь с апи работать на бекенде и возвращать только то, что нужно тебе если все 10к не нужны?
Timur
всем привет
Timur
кто нибудь vuex подключал не глобально, а на той странице, на которой надо?
Arcos
В отлодочном режиме чтобы выдавало нормальную страницу - что сделать?
Arcos
для всех статусов прописывать страницы? Или есть универсальный рецепт
Arcos
http, ну а если json - то json ответ об ошибке
Arcos
Сам обработчик могу повесить, но может есть параметр волшебный в параметрах
Георгий
http, ну а если json - то json ответ об ошибке
Ты хочешь в отладочном режиме видеть страницы ошибок так как это было бы видно не в отладочном?
Maksim (Ellrion)
я всё еще не понял тебя. но мб у кого то дешифратор лучше
Maksim (Ellrion)
да
почему бы тогда просто не выключить отладочный режим?)
Arcos
потому что все кроме HttpException мне критично смотреть
Arcos
Проще говоря: Я могу засунуть в Exceptions/Handler.php свой рендер с четким инстансом. Есть ли предустановленная константа, которая сама регулирует тип ошибок и реакцию на него?
Arcos
Если нет, тогда это не велосипед. Если есть, тогда зачем писать еще раз
Maksim (Ellrion)
но я критически не понимаю зачем?)
Arcos
ну там опирается на config('app.debug')
чтобы еще раз не писать обработку. Мне же надо на 4xx ошибки реагировать визуальной страницей с номером ошибки и прочими радостями, а не "whopps page"
Arcos
Maksim (Ellrion)
чтобы еще раз не писать обработку. Мне же надо на 4xx ошибки реагировать визуальной страницей с номером ошибки и прочими радостями, а не "whopps page"
ты и так реагируешь не этой страницей а страницей из шаблона на прод режиме. надо отладить саму вьюху - выруби дебаг посмотри вьюху. всё
Arcos
вот так она без дебага выглядит
Arcos
В любом случае спасибо
Arcos
Я сейчас просто накрою render своими правилами