НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
117 of 182 menu

Таблица queue

Таблица queue является системной таблицей Drupal, которая реализует механизм очередей для отложенного выполнения задач. Она позволяет помещать задачи в очередь и обрабатывать их асинхронно, что особенно полезно для операций, требующих значительного времени или ресурсов.

Поля

Поле Тип данных Описание
item_id int Уникальный идентификатор элемента очереди. Автоинкрементное поле.
name varchar(255) Название очереди. Позволяет организовывать разные типы задач в отдельные очереди.
data longblob Данные элемента очереди в сериализованном виде. Содержит информацию, необходимую для выполнения задачи.
expire int Время истечения срока действия элемента очереди в формате Unix timestamp. Если установлено в 0, элемент не имеет срока годности.
created int Время создания элемента очереди в формате Unix timestamp.

Как это работает

Система очередей Drupal работает по принципу FIFO (First In, First Out - первым пришел, первым ушел). Модули могут создавать элементы очереди с помощью API функции \Drupal::queue()->createItem(), которые затем сохраняются в таблице queue.

Обработка очереди обычно выполняется фоновыми процессами, такими как Cron или специализированные воркеры. Элементы извлекаются из очереди с помощью \Drupal::queue()->claimItem(), обрабатываются и затем удаляются методом deleteItem().

Поле expire используется для управления временем жизни элементов очереди. Если воркер не успел обработать элемент до истечения его срока, другой воркер может повторно claimнуть этот элемент для обработки.

Разные модули могут использовать различные очереди для своих задач. Например, система поиска использует очередь для индексации контента, а система почты - для отправки email.

Пример SQL-запроса

Посмотреть все элементы в определенной очереди можно следующим запросом:

SELECT item_id, name, created, expire FROM queue WHERE name = 'cron_search_indexing' ORDER BY created ASC;

Смотрите также

  • таблицу batch,
    которая управляет пакетными операциями
  • таблицу semaphore,
    которая управляет блокировками
  • таблицу key_value,
    которая хранит ключ-значение данные
  • таблицу cache_default,
    которая хранит кешированные данные
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить