Антон Шлома. Drupal очереди

Preview:

DESCRIPTION

DrupalCafe#9@Novosibirsk https://vk.com/drupalcafe9 Что такое очереди, как эту технику технологию применить, чего она позволяет избежать, какие задачи решает, как Queue API реализован в Drupal 7, какие наиболее популярные модули для D7 используют очереди. ----- Сайт сибирского сообщества друпаллеров ДрупалСиб drupalsib.ru Группа сибирского сообщества друпаллеров Вконтакте vk.com/drupalsib Партнер Группа компаний И20 i20.biz

Citation preview

Drupal очередиDrupal 7: Queue API

Антон ШломаИнженер-программистГруппа Компаний i20

Что такое очередь?

Что такое очередь?FIFOFirst In, First Out

Зачем нужен Queue API ?1. Фоновое

выполнение сложных операций.

2. Отложенное выполнение (распределенная нагрузка).

Зачем нужен Queue API ?3. Импорт большого

объема данных.4. Управление

огромным списком задач по частям.

5. Упростить разработку.

Чего позволяет избежать?1. Нехватка пямяти.2. Таймаут соединения.3. Ухудшение производительности.4. Долгое ожидание ответа.5. Блокировка внешними сервисами.6. Потеря данных.7. Излишняя обработка.

Как работать с Queue API?Добавление задач в очередь Worker

DrupalQueue::get('my_queue');

$queue->createQueue();

$queue->createItem($node);

Initialising...

$queue->claimItem($time = 3600);

Do something...

$queue->deleteItem($item);

hook_cron_queue_info() $queue['mymodule_queue'] = array( 'worker callback' => 'mymodule_item_process', 'time' => 60, ); return $queue;

mymodule_queue - имя очереди.

worker callback - функция, которая будет обрабатывать каждый элемент очереди.

time - максимальное время выполнения крона очереди

Elysia Cron: hook_cronapi() $items = array(); $items['cron_name'] = array( 'description' => 'Create some tasks to solve.', 'rule' => '0 3 * * *', // Run this job every day at 3am. 'callback' => 'mymodule_queue_set', ); return $items;

cron_name - Уникальное имя задачи для крона

description - описание

rule - период запуска

callback - функция, которая будет отрабатывать по крону

Примеры1. Рассылка обновлений по email.2. Экспорт заказов пользователей.3. Синхронизация товаров и остатков из xml.4. Синхронизация результатов транзакций платежной

системы.5. Отправка данных на внешний сервис.6. Рассылка приглашений вернуться на сайт.7. Уведомление о поступлении товара.

Реализация в модуляхAggregatorПроверяет ленту новостей на новые элементы

FeedsИмпорт

NotificationsРассылка уведомлений

Organic groupsУдаление членства в группе и связного содержимого группы.

RulesВыполнение разовых работ

Search ApiИндексация элементов

VideoПерекодирование видео

Views bulk operationsВыполнение операций в фоновом режиме.

Queue UI1. Просматривать список очередей и количества элементов.2. Задавать мета-информацию к очередям.3. Обработка очередей при помощи Batch API4. Обработать очереди по крону.5. Удалять очереди.

Спасибо за внимание!Вопросы?

Recommended