Вы здесь

Как выполнить параллельно несколько функций в Drupal 8?

0

Добрый день!

Есть пул заданий, которые необходимо выполнить параллельно.
Все задания независимы друг от друга.
Текущее последовательное выполнение:
function main_run() {
run1();
run2();
run3();
run4();
}

Необходимо выполнить быстро все runX().

Версия Drupal: 
8.x
Вопрос задан 23.08.2017 - 11:39

Ответы

0
Ответ дан 23.08.2017 - 11:57
Аватар пользователя xandeadx
xandeadx
1461

А если необходимо выполнить немедленно?
И заданий около 10000.

Комментарий оставлен 23.08.2017 - 13:20

Модуль запускает процессы немедленно. Что такое "задания"?

Комментарий оставлен 23.08.2017 - 14:06

Прописал:

$handle = background_process_start('process1', $values);
$handle = background_process_start('process2', $values);
$handle = background_process_start('process3', $values);

Запуск был обработан, хэндлы получены.
Но он все равно последовательно в фоне выполнял:
process1
process2
process3

Т.е. не произошло одновременного запуска всех 3 процессов.

Комментарий оставлен 23.08.2017 - 15:46

Это уже параллелизация процессов, можно попробовать воспользоваться маленькой библиотекой, сам не пользовался, но судя по описанию возможно то, что надо, может конечно видел уже:
git

Комментарий оставлен 23.08.2017 - 16:18

Что-то странное в работе этого модуля.
То последовательно обрабатывает.
То параллельно "пачками" обрабатывает (все процессы одновременно).
id - time1 start time end - proc
5 - 1503506793 - 1503506794 - 4
6 - 1503506793 - 1503506803 - 3
7 - 1503506793 - 1503506803 - 3
8 - 1503506793 - 1503506801 - 1
9 - 1503506794 - 1503506806 - 4
10 - 1503506801 - 1503506807 - 1
11 - 1503506803 - 1503506813 - 3
12 - 1503506803 - 1503506813 - 3
13 - 1503506807 - 1503506812 - 4
14 - 1503506807 - 1503506815 - 1
15 - 1503506812 - 1503506816 - 4
16 - 1503506813 - 1503506822 - 3
17 - 1503506813 - 1503506822 - 3
18 - 1503506815 - 1503506822 - 1

Комментарий оставлен 23.08.2017 - 20:32