Привет ребята. Помогите пожалуйста составить цепочку действий в голове с теоретической частью.
Задача:
Мне нужно скажем каждые 20 минут получать обновления и кидать в мою базу данных.
Дано:
1) В типе материала есть ссылка на внешний календарь который там на внешних ресурсах живёт своей жизнью.
2) Есть php класс который принимает на вход путь до календаря и в случае появления новых данных пишет в базу
Вопрос:
Собственно вопрос: Где должно быть связующее звено между нодой у которой указана ссылка на внешний ресурс и PHP классом который будет приминать данные и сохранять их в базу. Куда направлять крон и как должна работать та часть кода которая будет смотреть в ноду брать там NID и ссылку и посылать её в класс который в свою очередь будет в случае необходимости писать даты в отдельную таблицу в виде nid | date1 | date2
Вопрос по большей части чисто теоретический от незнания архитектуры. Буду очень благодарна на пинку в сторону просветления. А ещё больше буду благодарна за советы - что почитать что бы подобные вопросы впредь не возникали.
Комментарии
Однозначно в своем модуле.
Вам нужно следовать приблизительно следующему алгоритму:
Так же учитывайте, что если нод/календарей будет много - есть вероятность нехватки времени для обработки всех элементов списка. В таком случае, может иметь смысл дополнительная запись обработанных элементов, или использование очередей.
Благодарю за информацию. То что в кастомном модуле это разумеется. Я немного не понимаю логику в том плане можно ли заставить допустим тот же кастомный модуль срабатывать по крону? Модуль же не отдельный файл. И возможно ли это делать в фоне, что бы сам сайт не тупил при каждом запуске.
hook_cron же
В данных из этого календаря должен быть хоть какой-то айдишник. Его надо писать в ноду невидимым полем. Поставьте например элисия крон, чтобы раз в 20 минут запускать только это задание, а не все сразу. И не забудьте настроить крон в системе, чтобы он работал действительно в фоне, а не по заходу посетителя.
В ноде так-же прикручен модуль availability calendar, так что да айдишник календаря можно сказать есть, я как раз пытаюсь придумать синхронизацию в него со стороннего ресурса.
Насколько я понимаю об этом модуле идёт речь? Спасибо поковыряю.
Я вообще не говорю ни о каких модулях. Я говорю только о данных, полученных со стороннего ресурса. Можно взглянуть на то, что он присылает?
Feeds еще посмотрите, там есть периодический импорт.
Возможно, удастся обойтись своим маппингом в/из php-класса. И Feeds Tamper заодно.