Мульти-поточная очередь
С версии 3.12.10 добавляется мульти-поточная очередь которая позволит ускорить выполнение задач находящихся в очереди.
Новая мульти-поточная очередь запускается в режиме потоков (родитель и дочерние процессы) которые постоянно остаются запущенными.
8606 ? Ss 0:04 php index.php start_queue_threads 8607 ? S 0:03 \_ php index.php start_queue_threads 8609 ? S 0:04 \_ php index.php start_queue_threads 8610 ? S 0:03 \_ php index.php start_queue_threads 8733 ? S 0:04 \_ php index.php start_queue_threads
Каждый дочерний процесс обрабатывает свои задачи из очереди:
№1 дочерний процесс выполняет обработку задач:
coachtarif,coacronblock,coapay,coabill,coablock,coarealip,coafreezed,coauserup,coaunfreezedolg,coadeleted,coadevbill,coapayment,coadisabled,coaenable,coaturbostart,coafreeze,coaunfreezed,coaturboblock,coaunfreeze,caocreditnull,caocreditpay,coamacreg,coaspeed
№2 дочерний процесс выполняет обработку задач:
iptvservicecategorychange,iptvservicealiaschange,iptvservicetarifchange,nagrasyncsubs,nagraaddmodule,nagrasyncpairing,iptvglobalenable,iptvenable,iptvmultiadd,iptvmultidel,iptvdisable,drecryptaddcard,drecryptdelcard,drecryptchangecard,infocasmessage,trueipdeldevice,infocasmessageall,iptvadd,iptvdel,iptvglobalsuspended,iptvserviceportalchange,nagrachangemodule,iptvmultienable,iptvmultidisable,iptvgidadd,iptvgiddel,nagraaddcard,nagrachangecard,nagradelcard,nagradelmodule,trueipadddevice,trueipchangedevice,iptvupdate
№3 дочерний процесс выполняет обработку задач:
usdevdel,usdevadd,userchangefio,usdevportalchange,userchangepassword,userchangelogin,userproperchange,userchangedatebirth,userchangeemail,usdevchange
№4 дочерний процесс выполняет обработку задач:
komtet,pod,tarifchangespeed,atol,call_mikbill_event,kk,mail,mailingsms,mailingemail,mailingpost,multisms,kernelkick,sendsms
№5 дочерний процесс выполняет обработку задач:
exec, script
Каждые 10 секунд проверяется наличие заданий в очереди.
Пока процесс не закончит выполнять текущие задания, новые проверять он не будет. Это значит что если процесс забрал 1000 заданий, то пока он не выполнит эту 1000 заданий новые он проверять и брать не будет.
Активация
Необходимо выключить встроенный запуск команды на обработку очереди, сделать это можно в системных опциях, раздел "Встроенные команды", галочка "do_queue_once"
Далее необходимо выполнить консольную команду: start_queue_threads
cd /var/www/mikbill/admin php index.php start_queue_threads
Для остановки модуля, необходимо выполнить консольную команду: stop_queue_threads
cd /var/www/mikbill/admin php index.php stop_queue_threads
Автозапуск
Для автоматического запуска очереди после рестарта сервера, команды можно добавить в скрипт mikbill_5min.sh
Отредактируйте /var/mikbill/prod/scripts/mikbill_5min.sh, добавив после cd /var/www/mikbill/admin строки:
php index.php stop_queue_threads php index.php start_queue_threads