QueueWorker. Перемещение обработанных задач в конец очереди

В Drupal 8 имеется инструмент для автоматической обработки очередей по крону. Имя ему QueueWorker. Более подробно о нем можно узнать здесь.

Я же расскажу о том, как сделать так, что бы обработанные задачи перемещались в конец очереди для повторной обработки. Причины для такого поведения могут быть самые разные. Например, ноды определенного типа должны синхронизироваться с внешними сервисами до тех пор, пока эти ноды не будут удалены. Для этого мы при создании ноды создаем 1 раз задачу на синхронизацию, а затем QueueWorker будет их помещать в конец очереди для повторной обработки (...

Benya

Программно выполнить Drush команды

Пример программного вызова Drush команд:

<?php

namespace Drupal\example\Commands;

use Consolidation\SiteAlias\SiteAliasManagerAwareInterface;
use Consolidation\SiteAlias\SiteAliasManagerAwareTrait;
use Drush\Drush;

/**
 * Drush command to install and configure website using "minimal" profile.
 */
class ExampeCommands extends DrushCommands implements SiteAliasManagerAwareInterface {

  use SiteAliasManagerAwareTrait;

  /**
   * Install and configure Drupal.
   *
   * @command example:site:install
   *
   * @aliases example:si
   */
  public function install() {
    $this->...
Benya

Search API Solr. Автоисправление ошибок с помощью Solr Spell Checking

На сайте имеется поиск созданный модулями Views и Search API Solr Search. Задача - автоматически исправлять ошибки в искомых словах и показывать результаты для исправленных слов.

Для решения напишем небольшой модуль, который будет зависить от модуля Search API Spellcheck. Устанавливаем его и переходим к написанию собственного модуля. Для примера я назову модуль "search_api_misspell". Создаем файл "search_api_misspell.info":

name = Search misspell
description = Spelling suggestions from Search API services.
core = 7.x
package = Custom

dependencies[] =...
Benya

Установка и настройка MailCatcher

MailCatcher позволяет перехватывать отправленные электронные сообщения. Для меня он удобен тем, что перехваченное сообщение можно просматривать в браузере. Очень удобно, когда нужно настроить текст электронного сообщения, особенно когда речь идет об HTML.

Установка Ruby

В терминале выполняем команды:

sudo apt-add-repository ppa:brightbox/ruby-ng
sudo apt-get update
sudo apt-get install ruby2.2 ruby2.2-dev

Установка и настройка MailCatcher

Для установки в терминале выполянем команду:

sudo gem install mailcatcher

Далее необходимо сделать так, что бы MailCatcher запускался...

Benya

Установка и настройка Varnish

Для установки Varnish логинимся как root:

sudo -i

Затем в терминале выполняем следующие команды:

apt-get install apt-transport-https
curl https://repo.varnish-cache.org/GPG-key.txt | apt-key add -
echo "deb https://repo.varnish-cache.org/ubuntu/ trusty varnish-4.1" \
     >> /etc/apt/sources.list.d/varnish-cache.list
apt-get update
apt-get install varnish

После того, как выполнили команды выходим из под root:

exit

Проверяем установку:

varnishd -V

Должны увидеть примерно следующее:

varnishd (varnish-4.1.2 revision 0d7404e)
Copyright (c) 2006 Verdens Gang AS
Copyright (c) 2006-2015...
Benya

Установка Apache Solr

Установка Java

Для начала необходимо установить Java, для этого в терминале выполняем команды:

sudo add-apt-repository ppa:webupd8team/java -y
sudo apt-get update
sudo apt-get install oracle-java8-installer

Проверяем установку:

java -version

Должны увидеть примерно следующее:

java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)

Установка Apache Solr

В терминале выполняем команды:

cd ~
wget http://www.eu.apache.org/dist/lucene/solr/5.4.1/solr-5.4.1.tgz
tar xzf ~/solr-5.4.1.tgz

Переименовываем...

Benya

Установка Composer, Git и Drush

Установка Composer

В терминале выполняем команду:

curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer

Проверяем установку:

which composer

Должны увидеть примерно следующее:

/usr/local/bin/composer

Возвращаем права на директорию ~/.composer:

sudo chown -R your_user:your_group ~/.composer

Установка Git

Для установки Git в терминале выполняем следующие команды:

sudo apt-get update
sudo apt-get install git

Настройка Git

Перед использованием Git необходимо сделать две обязательные настройки:

git config --global user.name "Your Name...
Benya

Настройка MySQL Server и OpenSSH Server

Настройка MySQL Server

MySQL Server у меня уже установлен (как одна из зависимостей PHPBrew).

Для работы с базами данных я использую программу, которая установлена на основном PC, а не на виртуальном сервере. Для успешного подключения необходимо изменить настройки в файле /etc/mysql/my.cnf:

sudo nano /etc/mysql/my.cnf

Находим строку bind-address = 127.0.0.1 и меняем ее на bind-address = 0.0.0.0.

Перезапускаем MySQL Server:

sudo service mysql restart

Добавление пользователя

Подключаемся к MySQL Server под root:

mysql -u root -p

Вводим пароль, который указали в процессе установки ...

Benya