Определите происхождение загадочного задания cron
У меня есть таинственная работа cron, которая появляется один раз в день в моей таблице cron_schedule. Я потратил несколько часов на изучение проблемы, и я связал это задание cron с расширением, которое я установил много лет назад. Я на 100 % уверен, что это задание cron связано с этим расширением.
Но все не так просто. Я удалил все файлы из этого расширения несколько лет назад. С тех пор я перенес свою базу данных и темы на несколько новых чистых установок на разные серверы. Естественно, я очищал свои кэши сотни раз с тех пор, как удалил это расширение.
Поскольку файлы этого расширения исчезли, Magento записывает сообщение об ошибке в system.log каждый раз, когда пытается выполнить задание, поскольку соответствующий файл модели не существует. Сообщение выглядит примерно так:
ОШИБКА (3): Предупреждение: включить (Маг/ОТРЕДАКТИРОВАНО/Model/Observer.php ): не удалось открыть поток: Нет такого файла или каталог
Обратите внимание, что я отредактировал название модуля выше, потому что это коммерческий модуль, и я не хочу упоминать здесь разработчика.
В cron_schedule задание cron помечается статусом ошибки, и после попытки выполнения появляется следующее сообщение:
Исключение 'Исключение mage_core_exception' с сообщением "Недопустимый обратный вызов: ОТРЕДАКТИРОВАНО/наблюдатель::Имя функции с некоторым действием не существует"
Вот что Я сделал это, чтобы попытаться изгнать этого призрака из моей системы:
- Используется разница в папках, чтобы убедиться, что все файлы с расширением были удалены
- Удалены все таблицы БД, созданные расширением
- Удалены все записи бд, связанные с этим расширением, из core_config_data и core_resources
- Убедитесь, что в разделе includes/src нет старых файлов компиляции
- Сброшенные кэши миллион раз
- Выполнял текстовый поиск по всей системе каталогов ищу ссылки на этот отсутствующий файл/модуль
- Проверил каждый config.xml файл в моей системе с тегом
<crontab>
Я просто не могу найти, откуда берется эта работа cron. Есть ли какой-либо способ отладить систему в целом, чтобы записать происхождение каждого задания cron в файл журнала?
1 answers
Хорошо, итак, я решил свою проблему и узнал кое-что интересное о Magento.
Я думал, что все задания cron были сгенерированы из настроек XML в config.xml файлы, но это не так просто. Задания Cron также создаются на основе значений, найденных в core_config_data.
После выполнения серии поисков grep в базе кода я выполнил grep в файле дампа базы данных MySQL, и именно так я нашел запись cronjob.