Новости Joomla

Человек на GitHub ускорил Joomla в 600 раз на объёме 150к+ материалов в 1700+ категориях

Человек на GitHub ускорил Joomla в 600 раз на объёме 150к+ материалов в 1700+ категориях

👩‍💻 Человек на GitHub ускорил Joomla в 600 раз на объёме 150к+ материалов в 1700+ категориях. На старте его сайт на Joomla 3 вообще не смог обновиться на Joomla 5. Пришлось делать экспорт/импорт материалов. Проделав всё это он запустил-таки этот объём данных на Joomla 5. Тестовый скрипт грузил 200 материалов из этого объёма всего за 94 секунды ))) А главная страница с категориями грузилась 20 секунд. Добавив индекс для таблицы #__content

CREATE INDEX idx_catid_state ON #__content (catid, state);
он сократил время загрузки категорий до 1 секунды. Затем наш герой решил поковырять SQL-запрос в ArticleModel, который отвечает за выборку материалов. И решил заменить тип JOIN на STRAIGHT_JOIN для категорий.
// ->from($db->quoteName('#__content', 'a'))->from(    $db->quoteName('#__content', 'a')    . ' STRAIGHT_JOIN ' . $db->quoteName('#__categories', 'c')    . ' ON ' . $db->quoteName('c.id') . ' = ' . $db->quoteName('a.catid'))// ->join('LEFT', $db->quoteName('#__categories', 'c'), $db->quoteName('c.id') . ' = ' . $db->quoteName('a.catid'))
Что сократило загрузку 200 материалов из 150к с 94 секунд до 5. К слову сказать, боевой сайт на Joomla 3 крутится на 12CPU 64GB рамы. А все манипуляции с кодом он делает на базовом 1CPU 1GB сервере и замеры скорости даны именно для базового сервера. Но это всё в дискуссии, хотя в идеале должно вылиться в Pull Requests. Мы - Open Source сообщество, где никто никому ничего не должен. Джунгли. Но человек ищет пути оптимизации Joomla и предлагает решения. Если оказать поддержку и предложить помощь хотя бы с тестированием самых разнообразных сценариев, то возможно эти улучшения смогут войти в ядро. Пусть не быстро, пусть через несколько лет, пусть не все, но войдут. Достаточно предложить руку помощи и приложить немного усилий.
Дискуссию на GitHub можно почитать здесь.@joomlafeed#joomla #community #php

0 Пользователей и 1 Гость просматривают эту тему.
  • 20 Ответов
  • 4010 Просмотров
*

Shad-777

  • Осваиваюсь на форуме
  • 39
  • 0 / 0
Синхронизация с 1С
« : 08.02.2019, 07:20:04 »
Добрый день! А кто-нибудь уже пытался подружить PhocaCart с 1С? Зачастую это главное требование, предъявляемое заказчиком к Интернет-магазину.
*

Support

  • Захожу иногда
  • 114
  • 1 / 2
-
« Ответ #1 : 08.02.2019, 10:55:13 »
-
« Последнее редактирование: 17.07.2019, 12:53:10 от Support »
*

Shad-777

  • Осваиваюсь на форуме
  • 39
  • 0 / 0
Re: Синхронизация с 1С
« Ответ #2 : 08.02.2019, 11:06:30 »
тот кто интегрировал 1c с магазином на Joomla, наверно купил после этого типа рендж ровер и на бюджетных форумах больше не сидит  ^-^
Ну почему вы так категоричны ) JoomShopping вон вполне успешно подружили с 1С, что же мешает подружить Phoca Cart? ) Другое дело, что Phoca Cart - компонент совсем свежий и не может похвастаться пока таким количеством расширений, как JoomShopping.
*

Support

  • Захожу иногда
  • 114
  • 1 / 2
-
« Ответ #3 : 08.02.2019, 11:10:12 »
-
« Последнее редактирование: 17.07.2019, 12:52:56 от Support »
*

Support

  • Захожу иногда
  • 114
  • 1 / 2
-
« Ответ #4 : 08.02.2019, 11:11:41 »
-
« Последнее редактирование: 17.07.2019, 12:52:40 от Support »
*

passer

  • Завсегдатай
  • 1013
  • 75 / 3
Re: Синхронизация с 1С
« Ответ #5 : 08.02.2019, 12:22:05 »
Технически это не очень сложно. 1С по событию отправляет POST на определенный URL магазина или другого расширения, там этот POST ловится и вносятся изменения в БД или еще куда. А вот отправка и содержимое POST зависит от разработчика 1С. Т.е. это не просто действие на сайте, это еще и действие в самой 1С. В общем без коннекта с разработчиком 1С не получится. Универсально сделать невозможно. Только для конкретного сайта и конкретной 1С.
*

Support

  • Захожу иногда
  • 114
  • 1 / 2
-
« Ответ #6 : 08.02.2019, 12:27:14 »
-
« Последнее редактирование: 17.07.2019, 12:52:27 от Support »
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: Синхронизация с 1С
« Ответ #7 : 08.02.2019, 13:27:30 »
go скрипт стоит в планировщике, с определенным промежутком времени стучит на компонент синхронизации Joomla
получает запрос, формирует из него заказы в формате json
запускает внешнюю обработку 1С которая смотрит наличие в папки файлов json и создает на основе них новые заказы
ищет клиентов, если нет создает их, договора и ...
вроде все написал
писал сам  (go, 1C, php, mysql). Много времени уходит на тестирование и развертывание тестовой среды.
Приходится так-же себе ставить и 1С с конфигурацией и данными клиента.

рендж ровера нет, езжу на Vitara новой  ;D
*

zikkuratvk

  • Глобальный модератор
  • 4820
  • 345 / 2
  • Обслуживаем проекты - дорого.
Re: Синхронизация с 1С
« Ответ #8 : 08.02.2019, 19:23:30 »
В phoca есть возможность парсить XML :-) то есть если обработка будет выкладывать на ftp XML, то вообще можно без каких либо действий со стороны магазина обойтись.
Хочется уникальное расширение? ===>>>> JoomLine - Разрабатываем расширения под заказ.
Использую хостинг TimeWeb и Reg
*

Shad-777

  • Осваиваюсь на форуме
  • 39
  • 0 / 0
Re: Синхронизация с 1С
« Ответ #9 : 25.03.2019, 09:42:39 »
успешная интеграция JoomShopping в бесплатном варианте очень сомнительна, пришлите ссылку почитать, где пишут
Я не говорил, что вариант бесплатный ) Для своих проектов мы покупаем модуль интеграции тут - http://site-with-1c.ru/index.php/forum/tekushchie-relizy-i-opisanie-raboty-modulya-integratsii-dlya-joomshopping/46-vyshel-novyj-modul-integratsii-joomshopping-c-1c. Работает прекрасно и без танцев с бубном. Вот очень надеюсь, что что-нибудь в этом роде появится вскоре и на PhocaCart, потому что сам компонент получился очень приятным. Однозначно на голову выше JS и VM. Единственное, в чем проигрывает, это количество кастомных расширений, плагинов и т.д. от других разработчиков.
*

Support

  • Захожу иногда
  • 114
  • 1 / 2
-
« Ответ #10 : 25.03.2019, 09:55:50 »
-
« Последнее редактирование: 17.07.2019, 12:52:00 от Support »
*

Support

  • Захожу иногда
  • 114
  • 1 / 2
-
« Ответ #11 : 25.03.2019, 10:06:34 »
-
« Последнее редактирование: 17.07.2019, 12:52:11 от Support »
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Синхронизация с 1С
« Ответ #12 : 25.03.2019, 10:50:49 »
Вот очень надеюсь, что что-нибудь в этом роде появится вскоре и на PhocaCart
не думаю

потому что сам компонент получился очень приятным. Однозначно на голову выше JS и VM.
нет. демка красивая, да. но для продакшна к сожалению абсолютно не приспособлено

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

вообще, интегрировать 1с надо не Joomla, а с внешним источником данных MySQL на стороне 1с
вот спорный вопрос :) если только на стороне 1с - то как отслеживать например продажи, изменения количества на стороне интернет-магазина?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Support

  • Захожу иногда
  • 114
  • 1 / 2
-
« Ответ #13 : 25.03.2019, 13:48:05 »
-
« Последнее редактирование: 17.07.2019, 12:53:35 от Support »
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Синхронизация с 1С
« Ответ #14 : 25.03.2019, 14:28:02 »
так база данных получается одна и обмен данными получается не нужен
аа, в этом смысле... так а 1С-ка разве умеет со сторонней базой работать? по моему нет же? или там можно подключить не внутреннее хранилище, а внешнюю MySQL, и настроить соответствие полей? в противном случае это ж придется всю логику 1С-ки переписать, все журналы, отчеты и прочее. там от 1С-ки тогда по сути ничего не останется. не знаю даже есть ли смысл такого в магазине...
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Support

  • Захожу иногда
  • 114
  • 1 / 2
-
« Ответ #15 : 25.03.2019, 14:39:37 »
-
« Последнее редактирование: 17.07.2019, 12:51:39 от Support »
*

Support

  • Захожу иногда
  • 114
  • 1 / 2
-
« Ответ #16 : 25.03.2019, 14:42:19 »
-
« Последнее редактирование: 17.07.2019, 12:51:27 от Support »
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Синхронизация с 1С
« Ответ #17 : 25.03.2019, 14:47:37 »
аа, вы про ВнешниеИсточникиДанных что ли? я думал хранение базы сделать в 1С-ке полностью в MySQL... не то. ВнешниеИсточникиДанных тоже очень спорный момент. тот же заказ, и изменение количества товара в интернет магазине - это 1С-ке что ли надо каждый раз проверять актуальное количество в базе магазина? описывать эту логику на стороне 1С-ки, запоминать последний заказ, время проверки, и прочее? не проще ли при наступлении события заказа в магазине просто оповестить об этом 1С?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Support

  • Захожу иногда
  • 114
  • 1 / 2
-
« Ответ #18 : 25.03.2019, 15:09:55 »
-
« Последнее редактирование: 17.07.2019, 12:51:13 от Support »
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Синхронизация с 1С
« Ответ #19 : 25.03.2019, 17:12:41 »
не так, просто запускается и идет работа с базой данных
дык... все таки первый вариант? так а что ж тогда просто останется от 1C-ки то? это ж полностью своя логика, там же кроме оболочки и окошек тогда ничего не останется :) зачем она тогда вообще? :) проще тогда сайт подпилить имхо, чтобы учет прям там можно было вести..
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Support

  • Захожу иногда
  • 114
  • 1 / 2
-
« Ответ #20 : 25.03.2019, 18:42:48 »
-
« Последнее редактирование: 17.07.2019, 12:51:01 от Support »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться