Соответственно, узнать длину очереди в таком состоянии воркер не может.Обработчики очередей не должны заботиться о длине очереди. Это не их ответственность. Они находятся в постоянной готовности обработать следующую задачу.
Плюс, воркер в процессе собирает статистику, и должен как-то отдать её в конце работы. Я пока что решил это таким способом: напихиваю в конец очереди N (по числу воркеров) специальных заданий останова - воркер получает такое задание, отключается от очереди и делает всё необходимое.статистику можно сохранять в СУБД, отправлять в какую-либо отдельную очередь "отчеты" и пр. (в общем обмениваться через IPC).
fgrep
:$ cat /tmp/file1.txt
aaa
bbb
ccc
$ cat /tmp/file2.txt
bbb
123
aaa
$ fgrep -f /tmp/file1.txt /tmp/file2.txt
bbb
aaa
$output = shell_exec('fgrep -f /tmp/file1.txt /tmp/file2.txt > /tmp/dups.txt');
$ sort -u /tmp/file1.txt /tmp/file2.txt
123
aaa
bbb
ccc
$output = shell_exec('sort -u /tmp/file1.txt /tmp/file2.txt > /tmp/dups.txt');
Есть ли какие-то диагностические инструменты на php?Да. Называются термином APM. Устанавливается и интегрируется агент APM и тот собирает необходимые метрики. Для некоторых APM есть веб-интерфейс и в них можно узнать на какие запросы тратится много времени или других ресурсов. Без APM можно только гадать.
429 Too Many Requests