Forums / National / Russian / Тех. поддержка / Событие после hook

Kopusha
#1 2025-04-12 21:37

Например добавили страницу page.add.add.done

После - редирект cot_redirect на нее же, опубликованную

Затем я хочу автоматически опубликовать на нее в комментария ответ от AI (page.add.add.done так как надо знать id страницы), но время запроса к AI занимает время. Если я привяжу запрос в AI к page.add.add.done то произойдет запрос - ответ и затем публикация. А как можно

- page.add.add.done
- cot_redirect
- запрос+ответ + новый комментарий (мне НЕ критично сразу же его показать, можно и после обновления страницы).

Суть вопроса - при page.add.add.done все зависает секунд на 10-20. Я хочу page.add.add.done - опубликовал сразу и показал - а уже после пусть и комментарий появится.

Alex300
#2 2025-04-13 06:12

В самом простом случае это может выглядеть так:

При срабатывании хука page.add.add.done создается задача. Это может запись в таблице в БД.

Другой скрипт, запускаемый по крону считывает данные в этой таблице, выполняет задачи и удаляет записи (или помечает их как выполненные). Обычно такой скрипт запускается из командной строки (cli.php в https://github.com/Alex300/cotonti-lib)

Можно исползовать RabbitMq для организации очередей задач.

Суть в том что операции, задерживающие выполнение основной программы, выполняются отдельно, в фоне, незаметно для пользователя.

Добавлено 3 дня спустя:

Также можно в  cot_redirect() передать какой-нибудь дополнительный GET параметр а на странице, куда было перенаправление, после ее загрузки JavaScript проверит наличие этого GET параметра и при необходимости отправит запрос на сервер, и сервер выполнит необходимые действия.

Есть миры, не здесь, там, где небеса горят, и моря засыпают, и реки дремлют; люди сделаны из дыма, а города – из песен. Где-то опасность, где-то несправедливость, даже где-то остыл чай. Идем Эйс, у нас много работы!...
...Sorry for my english...
Бесплатные расширения для Cotonti: https://lily-software.com/free-scripts/
This post was edited by Alex300 (2025-04-16 09:27, 2 weeks ago)