битрикс пошаговое выполнение скрипта
Пошаговое выполнение тяжелых скриптов на агентах Иногда требуется периодически выполнять скрипт, вр.
Пошаговое выполнение тяжелых скриптов на агентах
Иногда требуется периодически выполнять скрипт, время работы которого не укладывается в рамки серверных ограничений max_execution_time. Например, автоматический импорт больших списков или, как в моем примере, автоматический ресайз картинок инфоблока.
В таких случаях требуется использовать пошаговый алгоритм.
В данном примере скрипт раз в сутки проверяет наличие новых картинок и ресайзит их, но скрипт можно легко адаптировать и под другие задачи.
Этот код можете использовать, если вы, так же как и я, любите использовать функцию ResizeImageGet для уменьшения картинок( http://dev.1c-bitrix.ru/api_help/main. ageget.php ).
Лучше будет, если агенты будут работать на cron’e http://dev.1c-bitrix.ru/community/web. blog/2755/
Надеюсь кому-нибудь пригодится. Может кто посоветует, как улучшить алгортитм и расскажет о своих велосипедах.)
Насколько мне известно, битрикс кеширует результат ресайза.
При последующих обращениях к файлу с заданными шириной и высотой через ResizeImageGet() будет возвращена уже отмасштабированная картинка.
Если уж так жалко одного пользовательского хита по странице с вызовом ResizeImageGet(), то может это и имеет смысл, но я обычно не заморачиваюсь.
Если бы ваш агент сохранял путь до отмасштабированного изображения куда-то, а вы уже обращались бы к этому пути, то да, возможно был бы какой-то смысл (ResizeImageGet не будет тратить время на CFile::GetFileArray()). Но мне кажется, если товар появился между запусками агента, то к нему за сутки уже произойдет пользовательский хит (если, конечно, товары сразу появляются в паблике после добавления), и тогда ваш агент выполнит ненужную работу.
Для многошаговых импортов не использую никогда агенты, предпочитаю контролировать выполнение шагов самостоятельно с помощью скрипта импорта.
Но агентам в свое время нашел множество других полезных применений. Например при добивании лида, если он оставил email на сайте, можно отправить несколько сообщений с его корзиной, если он не дошел до цели покупки, а может быть и дать скидку в одном из таких писем. Или, например, когда нужно очищать корзину конкретного покупателя спустя какое-то время (полчаса, скажем), если он не выкупил корзину.
Дабы не плодить лишние агенты(«шаги»):
//Добавляем новый агент через n минут
self::addOneMoreStepAgent($arFields[«ID»]);
return false;
break;
>
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».
Продукты
Управление сайтом
Битрикс24
Мобильное приложение
Интернет-магазин + CRM
Решения
Для интернет-магазинов
Для медорганизаций
Для учебных заведений
Для госорганизаций
Каталог готовых решений
Внедрение
Выбрать партнера
Проверить партнера
Стать партнером
© 2001-2021 «Битрикс», «1С-Битрикс». Работает на 1С-Битрикс: Управление сайтом. Политика конфиденциальности
Реализация пошаговой работы PHP-скрипта с помощью AJAX
06 апреля 2013, 01:36
Искал более-менее простое и универсальное средство для организации пошаговой работы скрипта, но так ничего и не нашел. Даже вопрос в QA задал, везде только общие фразы. Поэтому решил сам сделать такой инструмент.
Для чего это вообще нужно?
Бывает необходимо обработать скриптом какой-то очень уж большой файл, например, для импорта. Естественно, время работы скрипта увеличивается пропорционально размеру файла или количеству строк в нем.
Хотелось бы разбить обработку файла на несколько частей и запускать скрипт в работу уже по частям.
Принцип реализации давно известен — обмен данными между сервером и клиентом:
Клиент запускает скрипт, тот выполняет несколько итераций и возвращает клиенту номер строки, на которой он остановился. После этого клиент делает новый запрос, в котором передает скрипту этот номер и скрипт продолжает работу дальше.
Собственно сам код
Для работы нам понадобятся:
index.html
scriptoffset.php
scriptoffset.js
scriptoffset.css
Для оформления css взял несколько правил из Bootstrap.
Что в итоге
В поле url мы указываем, например, ссылку на файл, который нужно обработать, и запускаем скрипт. Появляется прогресс-бар, а мы сидим и ждем, когда он доползет до 100 %, чтобы увидеть результат работы.
UPD. Решение, адаптированное для MODX здесь.
Реализация пошаговой работы PHP-скрипта с помощью AJAX
Искал более-менее простое и универсальное средство для организации пошаговой работы скрипта, но так ничего и не нашел. Даже вопрос в QA задал, везде только общие фразы. Поэтому решил сам сделать такой инструмент.
Для чего это вообще нужно?
Бывает необходимо обработать скриптом какой-то очень уж большой файл, например, для импорта. Естественно, время работы скрипта увеличивается пропорционально размеру файла или количеству строк в нем.
Хотелось бы разбить обработку файла на несколько частей и запускать скрипт в работу уже по частям.
Принцип реализации давно известен — обмен данными между сервером и клиентом:
Клиент запускает скрипт, тот выполняет несколько итераций и возвращает клиенту номер строки, на которой он остановился. После этого клиент делает новый запрос, в котором передает скрипту этот номер и скрипт продолжает работу дальше.
Собственно сам код
Для работы нам понадобятся:
Для оформления css взял несколько правил из Bootstrap.
Что в итоге
В поле url мы указываем, например, ссылку на файл, который нужно обработать, и запускаем скрипт. Появляется прогресс-бар, а мы сидим и ждем, когда он доползет до 100 %, чтобы увидеть результат работы.
Если у сообщества есть примеры реализации подобного функционала или вообще готовые решения для пошаговой работы со скриптами, буду благодарен ссылкам в комментариях.
UPD. Решение, адаптированное для MODX здесь.
Битрикс пошаговое выполнение скрипта
Цитатник веб-разработчиков В тексте курса вы встретите цитаты, высказанные в разное время разработчиками системы и разработчиками проектов на базе Bitrix Framework. Надеемся, что такие неформальные замечания внесут некоторое разнообразие в процесс изучения. Заодно опытные специалисты поделятся и своим опытом.
Чтобы научиться программировать в Bitrix Framework, нет необходимости изучать всю линейку курсов. Но есть моменты, которые необходимо знать разработчикам о системе, они раскрыты в начальных курсах:
Как построен курс
Общепринятая градация квалификации разработчиков в рамках курса обозначает что:
Начальные требования к подготовке
Для успешного изучения курса и овладения мастерством разработки сайтов на Bitrix Framework необходимо владеть (хотя бы на начальном уровне):
У нас часто спрашивают, сколько нужно заплатить
Но у нас есть Академия 1С-Битрикс, где можно обучиться на платной основе на курсах нашей компании либо наших партнёров.
Тесты
После изучения курса вам будет предложено пройти тесты на сертификацию. При успешной сдаче последовательности тестов на странице Моё обучение можно просмотреть результат обучения и загрузить сертификат в формате PDF.
Комментарии к статьям
Что дальше?
Одновременно с изучением курса Разработчик Bitrix Framework вам придётся обращаться к информации о других технологиях Bitrix Framework. Эта информация размещена в следующих курсах:
Для преподавания оффлайн
Если данный курс берётся в качестве основы для оффлайного преподавания, то рекомендуемая продолжительность: 5 дней (40 академических часов).
Если нет интернета
Скачать материалы курса в формате EPUB. Файлы формата EPUB Чем открыть файл на
Android:
EPUB Reader
CoolReader
FBReader
Moon+ Reader
eBoox
iPhone:
FBReader
CoolReader
iBook
Bookmate
Windows:
Calibre
FBReader
Icecream Ebook Reader
Плагины для браузеров:
EpuBReader – для Firefox
Readium – для Google Chrome
iOS
Marvin for iOS
ShortBook
обновляются периодически, поэтому возможно некоторое отставание их от онлайновой версии курса.
Битрикс пошаговое выполнение скрипта
Цитатник веб-разработчиков В тексте курса вы встретите цитаты, высказанные в разное время разработчиками системы и разработчиками проектов на базе Bitrix Framework. Надеемся, что такие неформальные замечания внесут некоторое разнообразие в процесс изучения. Заодно опытные специалисты поделятся и своим опытом.
Чтобы научиться программировать в Bitrix Framework, нет необходимости изучать всю линейку курсов. Но есть моменты, которые необходимо знать разработчикам о системе, они раскрыты в начальных курсах:
Как построен курс
Общепринятая градация квалификации разработчиков в рамках курса обозначает что:
Начальные требования к подготовке
Для успешного изучения курса и овладения мастерством разработки сайтов на Bitrix Framework необходимо владеть (хотя бы на начальном уровне):
У нас часто спрашивают, сколько нужно заплатить
Но у нас есть Академия 1С-Битрикс, где можно обучиться на платной основе на курсах нашей компании либо наших партнёров.
Тесты
После изучения курса вам будет предложено пройти тесты на сертификацию. При успешной сдаче последовательности тестов на странице Моё обучение можно просмотреть результат обучения и загрузить сертификат в формате PDF.
Комментарии к статьям
Что дальше?
Одновременно с изучением курса Разработчик Bitrix Framework вам придётся обращаться к информации о других технологиях Bitrix Framework. Эта информация размещена в следующих курсах:
Для преподавания оффлайн
Если данный курс берётся в качестве основы для оффлайного преподавания, то рекомендуемая продолжительность: 5 дней (40 академических часов).
Если нет интернета
Скачать материалы курса в формате EPUB. Файлы формата EPUB Чем открыть файл на
Android:
EPUB Reader
CoolReader
FBReader
Moon+ Reader
eBoox
iPhone:
FBReader
CoolReader
iBook
Bookmate
Windows:
Calibre
FBReader
Icecream Ebook Reader
Плагины для браузеров:
EpuBReader – для Firefox
Readium – для Google Chrome
iOS
Marvin for iOS
ShortBook
обновляются периодически, поэтому возможно некоторое отставание их от онлайновой версии курса.