Commit 972043fd1b7f0c4b5e37cce79a84e99a74035535
1 parent
87b31054
Exists in
master
and in
8 other branches
Ajuste em script de monitoramento de bloqueio de workers do gearman
Showing
2 changed files
with
19 additions
and
15 deletions
Show diff stats
README.md
@@ -51,6 +51,7 @@ Para solicitação de acesso aos ambientes, acesse os seguintes endereços: | @@ -51,6 +51,7 @@ Para solicitação de acesso aos ambientes, acesse os seguintes endereços: | ||
51 | Estes dois componentes são utilizados para gerenciar a fila de recebimento de novos processos de forma assíncrona pelo SEI. | 51 | Estes dois componentes são utilizados para gerenciar a fila de recebimento de novos processos de forma assíncrona pelo SEI. |
52 | 52 | ||
53 | **Importante:** É imprescindível que os dois sejam instalados **SOMENTE** no nó de aplicação em que está configurado o CRON de agendamento do SEI. | 53 | **Importante:** É imprescindível que os dois sejam instalados **SOMENTE** no nó de aplicação em que está configurado o CRON de agendamento do SEI. |
54 | +**Importante:** Deverá ser utilizado o Supervisor a partir da versão 4.0 | ||
54 | 55 | ||
55 | Exemplo de instalação do German e Supervisor no CentOS: | 56 | Exemplo de instalação do German e Supervisor no CentOS: |
56 | 57 | ||
@@ -58,7 +59,7 @@ Estes dois componentes são utilizados para gerenciar a fila de recebimento de n | @@ -58,7 +59,7 @@ Estes dois componentes são utilizados para gerenciar a fila de recebimento de n | ||
58 | yum install epel-release && yum update | 59 | yum install epel-release && yum update |
59 | 60 | ||
60 | # instalação do gearman e supervisord | 61 | # instalação do gearman e supervisord |
61 | - yum install supervisor gearmand libgearman libgearman-devel php56*-pecl-gearman | 62 | + yum install supervisor-4.* gearmand libgearman libgearman-devel php56*-pecl-gearman |
62 | 63 | ||
63 | 3. Configuração dos serviços de recebimento de processos no **supervisor** | 64 | 3. Configuração dos serviços de recebimento de processos no **supervisor** |
64 | 65 | ||
@@ -75,7 +76,8 @@ Estes dois componentes são utilizados para gerenciar a fila de recebimento de n | @@ -75,7 +76,8 @@ Estes dois componentes são utilizados para gerenciar a fila de recebimento de n | ||
75 | # adicione no final do arquivo | 76 | # adicione no final do arquivo |
76 | [program:sei_processar_pendencias] | 77 | [program:sei_processar_pendencias] |
77 | command=/usr/bin/php -c /etc/php.ini /opt/sei/web/modulos/pen/rn/ProcessarPendenciasRN.php | 78 | command=/usr/bin/php -c /etc/php.ini /opt/sei/web/modulos/pen/rn/ProcessarPendenciasRN.php |
78 | - numprocs=1 | 79 | + process_name=%(program_name)s_%(process_num)02d |
80 | + numprocs=4 | ||
79 | directory=/opt/sei/web | 81 | directory=/opt/sei/web |
80 | user=apache | 82 | user=apache |
81 | autostart=true | 83 | autostart=true |
verificar-servicos.sh
@@ -3,7 +3,7 @@ | @@ -3,7 +3,7 @@ | ||
3 | PATH=/usr/bin:/sbin:/bin:/usr/sbin | 3 | PATH=/usr/bin:/sbin:/bin:/usr/sbin |
4 | export PATH | 4 | export PATH |
5 | 5 | ||
6 | -echo "Iniciando execução dos script"; | 6 | +echo "[$(date +"%Y-%m-%d %T")] Iniciando verificação dos serviços do Gearman e Supervisor... "; |
7 | GEARMAN=$(ls /etc/init.d | grep -owih gearman.*) | 7 | GEARMAN=$(ls /etc/init.d | grep -owih gearman.*) |
8 | if [[ -z $GEARMAN ]]; then | 8 | if [[ -z $GEARMAN ]]; then |
9 | echo "ERROR: Instalação do Gearman não pode ser localizada." | 9 | echo "ERROR: Instalação do Gearman não pode ser localizada." |
@@ -16,45 +16,43 @@ else | @@ -16,45 +16,43 @@ else | ||
16 | fi | 16 | fi |
17 | fi | 17 | fi |
18 | 18 | ||
19 | -echo "Verificando supervisor..."; | ||
20 | SUPERVISOR=$(ls /etc/init.d | grep -owih supervisor.*) | 19 | SUPERVISOR=$(ls /etc/init.d | grep -owih supervisor.*) |
21 | if [[ -z $SUPERVISOR ]]; then | 20 | if [[ -z $SUPERVISOR ]]; then |
22 | echo "ERROR: Instalação do Supervisor não pode ser localizada." | 21 | echo "ERROR: Instalação do Supervisor não pode ser localizada." |
23 | - exit 1 | 22 | + exit 1; |
24 | else | 23 | else |
25 | ps cax | grep -ih supervisor.* > /dev/null | 24 | ps cax | grep -ih supervisor.* > /dev/null |
26 | if [ $? -ne 0 ]; then | 25 | if [ $? -ne 0 ]; then |
27 | - echo "Supervisor: Iniciando serviço de monitoramento dos processos de integração..." | 26 | + echo "Supervisor: Iniciando serviço de monitoramento dos processos de integração (1)..." |
28 | /etc/init.d/$SUPERVISOR start; | 27 | /etc/init.d/$SUPERVISOR start; |
29 | else | 28 | else |
30 | 29 | ||
31 | COMMAND=$(ps -C php -f | grep -o "PendenciasTramiteRN.php"); | 30 | COMMAND=$(ps -C php -f | grep -o "PendenciasTramiteRN.php"); |
32 | if [ -z "$COMMAND" ]; then | 31 | if [ -z "$COMMAND" ]; then |
33 | - echo "Supervisor: Reiniciando serviço de monitoramento dos processos de integração..." | 32 | + echo "Supervisor: Reiniciando serviço de monitoramento dos processos de integração (2)..." |
34 | /etc/init.d/$SUPERVISOR stop; | 33 | /etc/init.d/$SUPERVISOR stop; |
35 | - /etc/init.d/$SUPERVISOR start; | 34 | + /etc/init.d/$SUPERVISOR start; |
36 | fi | 35 | fi |
37 | 36 | ||
38 | COMMAND=$(ps -C php -f | grep -o "ProcessarPendenciasRN.php"); | 37 | COMMAND=$(ps -C php -f | grep -o "ProcessarPendenciasRN.php"); |
39 | if [ -z "$COMMAND" ]; then | 38 | if [ -z "$COMMAND" ]; then |
40 | - echo "Supervisor: Reiniciando serviço de monitoramento dos processos de integração..." | 39 | + echo "Supervisor: Reiniciando serviço de monitoramento dos processos de integração (3)..." |
41 | /etc/init.d/$SUPERVISOR stop; | 40 | /etc/init.d/$SUPERVISOR stop; |
42 | /etc/init.d/$SUPERVISOR start; | 41 | /etc/init.d/$SUPERVISOR start; |
43 | fi | 42 | fi |
44 | fi | 43 | fi |
45 | fi | 44 | fi |
46 | 45 | ||
47 | -echo "Verificando gearman..."; | ||
48 | # Garante que comando grep está disponível | 46 | # Garante que comando grep está disponível |
49 | if ! [ -x "$(command -v grep)" ]; then | 47 | if ! [ -x "$(command -v grep)" ]; then |
50 | echo "Error: comando grep não encontrado" >&2 | 48 | echo "Error: comando grep não encontrado" >&2 |
51 | - exit 1 | 49 | + exit 1; |
52 | fi | 50 | fi |
53 | 51 | ||
54 | # Garante que comando gearadmin está disponível | 52 | # Garante que comando gearadmin está disponível |
55 | if ! [ -x "$(command -v gearadmin)" ]; then | 53 | if ! [ -x "$(command -v gearadmin)" ]; then |
56 | echo "Error: comando geardmin não encontrado" >&2 | 54 | echo "Error: comando geardmin não encontrado" >&2 |
57 | - exit 1 | 55 | + exit 1; |
58 | fi | 56 | fi |
59 | 57 | ||
60 | #Verifica se existe alguma fila de processamento parada por causa de um worker bloqueado | 58 | #Verifica se existe alguma fila de processamento parada por causa de um worker bloqueado |
@@ -71,11 +69,15 @@ fi | @@ -71,11 +69,15 @@ fi | ||
71 | # isto indica que houve algum bloqueio no Worker que está impedindo-o a processar os trabalhos da fila. | 69 | # isto indica que houve algum bloqueio no Worker que está impedindo-o a processar os trabalhos da fila. |
72 | # Nesta situação, processos do german precisam ser reiniciados. | 70 | # Nesta situação, processos do german precisam ser reiniciados. |
73 | 71 | ||
72 | +#GEARADMIN_STATUS=$(cat /opt/sei/temp/gearadmin_stats) | ||
74 | GEARADMIN_STATUS=$(gearadmin --status) | 73 | GEARADMIN_STATUS=$(gearadmin --status) |
75 | -GEARADMIN_REGEX="([1-9]+|[1-9]+[0-9]*)+[[:space:]]+0+[[:space:]]+([1-9]+|[1-9]+[0-9]*)+" | 74 | +GEARADMIN_BLOCKED_PATTERN="([1-9]+|[1-9]+[0-9]*)+[[:space:]]+0+[[:space:]]+([1-9]+|[1-9]+[0-9]*)+" |
75 | +GEARADMIN_RUNNING_PATTERN="([1-9]+|[1-9]+[0-9]*)+[[:space:]]+([1-9]+|[1-9]+[0-9]*)+[[:space:]]+([1-9]+|[1-9]+[0-9]*)+" | ||
76 | 76 | ||
77 | -if echo "$GEARADMIN_STATUS" | grep -Eq "$GEARADMIN_REGEX"; then | ||
78 | - echo "Supervisor: Reiniciando serviço de monitoramento dos processos de integração..." | 77 | +if (echo "$GEARADMIN_STATUS" | grep -Eq "$GEARADMIN_BLOCKED_PATTERN") && !(echo "$GEARADMIN_STATUS" | grep -Eq "$GEARADMIN_RUNNING_PATTERN") ; then |
78 | + echo "Supervisor: Reiniciando serviço de monitoramento dos processos de integração (4)..." | ||
79 | /etc/init.d/$SUPERVISOR stop; | 79 | /etc/init.d/$SUPERVISOR stop; |
80 | /etc/init.d/$SUPERVISOR start; | 80 | /etc/init.d/$SUPERVISOR start; |
81 | fi | 81 | fi |
82 | + | ||
83 | +exit 0 | ||
82 | \ No newline at end of file | 84 | \ No newline at end of file |