Ответы пользователя по тегу PHP
  • Как правильней обрабатывать PHP скрипт с временем выполнения в 5-10 минут?

    @alvery
    Backend Developer
    Если выполнение процесса может оборваться в любой момент и вам нужно гарантировать его то я бы воспользовался очередями. Запаковываете часть вашего скрипта в консольную команду которую поставите на cron (ту часть которая отвечает за выборку пользователей для процессинга). Вторую часть, отвечающую за скачку файла по api и обновление юзера заворачиваете в консюмер на очереди. Таким образом сможете гарантировать что все ваши пользователи будут обработаны, а для тех что не завершились без ошибок (они вернутся в очередь) сможете добавить фикс для корректной их обработки.
    Все ваши воркеры (консюмеры) ставите на supervisord. Чтобы один консюмер не надрывался над вашей кучей - указываете кол-во процессов в конфиге супервизора.
    Для решения задачи со временем можно сделать 2мя способами:
    1. Во время выборки на консольной команде засылать в очередь только тех пользователей кто должен сейчас обновиться
    2. Для каждого сообщения проставляете поле время. На конюсмере проверяете это время, если рано то кидаете обратно в очередь
    Ответ написан
    Комментировать
  • Не стардартная структура в меню битрикс как интегрировать такую верстку?

    @alvery
    Backend Developer
    Абсолютно не имеет значения какого уровня вложенности ваше меню, важно понимать как работает компонент бус.
    CMenu::Init() инициализирует массив на основе ваших .<тип меню>.menu.php
    Далее вам нужно перестроить массив в структуру дерева, еще проверьте макс. уровень вложенности в $arParams
    Ответ написан
    Комментировать
  • Выгрузка товаров на сайт, как организовать систему?

    @alvery
    Backend Developer
    Ставите событие на cron (каждые 5 минут) и добавляете нужных агентов с интервалом 1 час.
    Посмотрите здесь: blog.d-it.ru/dev/transfer-agents-on-the-crown-the-...
    По выгрузке если форматы не совпадают с форматом ваших ИБ то наверное импорт средствами бус сделать не получится. Нужно смотреть в сторону SimpleXML
    Ответ написан
    Комментировать