Определите происхождение загадочного задания 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 в файл журнала?

Author: Chrysippus, 2014-12-31

1 answers

Хорошо, итак, я решил свою проблему и узнал кое-что интересное о Magento.

Я думал, что все задания cron были сгенерированы из настроек XML в config.xml файлы, но это не так просто. Задания Cron также создаются на основе значений, найденных в core_config_data.

После выполнения серии поисков grep в базе кода я выполнил grep в файле дампа базы данных MySQL, и именно так я нашел запись cronjob.

 1
Author: Chrysippus, 2015-01-01 05:36:32