$output['result'][0]['message']['text']
К примеру, научился применять Dependency Injection в конструкторе контроллера, но нет понимая как это работает и для чего это делается.
$url = "$goods->url";
echo $url; // выведет http://xn----7sblaeg7cgj4a.com.ua/ve6rhnjaja-odejda/3339-palto-frak.html
Он будет проверять, есть ли задачи на обновление кэша и выполнять их. (обработчик очереди)
Для реализации очереди можно использовать rabbitmq или другой брокер.
Но у него нету уникальности, то есть можно понаставить в очередь одних и тех же задач. Тут лучше наверное редис использовать.
То есть твоё приложение будет получать данные только когда такого кэша нет физически. (пункт 1)
А когда надо будет обновить кэш, твоё приложение только поставит задачу, например в том же редисе, что нужно обновить кэш для такого то материала.
Демон, который крутится в бесконечном цикле, постоянно мониторит этот список с задачами, если что то есть, он выполняет задачу и удаляет её из редиса.