Red de conocimiento de abogados - Derecho de sociedades - salir del tiempo de espera de Linux establecer el tiempo de espera de Linux

salir del tiempo de espera de Linux establecer el tiempo de espera de Linux

¿El sistema de tiempo de espera de vigilancia de Linux se sigue reiniciando?

Ese es un problema con tu kernel. Cambia la versión. Si corta el grano usted mismo, verifique si no se lo dio al perro. O sea grosero y desactive el mecanismo de vigilancia directamente.

¿Por qué el socketsend siempre caduca?

Utilice setsockopt para configurar SO_SNDTIMEO y SO_RCVTIMEO en Linux y Windows. En algunos casos, hay una pequeña diferencia en los parámetros del socket UDP:

Si la otra parte está cerrada, el local. Es posible que sendto no pueda enviar los datos y luego se bloqueará recvfrom. En este momento, debe configurar los valores de estos dos parámetros para mejorar la calidad del programa. linux: structtimevaltimeout={3, 0}

; //3sintret=setsockopt(sock_fd, SOL_SOCKET, SO_SNDTIMEO, (constchar*)timeout, sizeof(timeout))

; setsockopt(sock_fd, SOL_SOCKET, SO_RCVTIMEO, (constchar*)timeout, sizeof(timeout))

; si ret==0, es un éxito, -1 es un error. En este momento, puede verificar errno. para determinar el motivo del error intrecvd=recv(sock_fd,buf,1024,0)

; if (recvd==-1errno==EAGAIN){printf(timeoutn);

}windows: inttimeout=3000 ;//3sintret=setsockopt(sock_fd, SOL_SOCKET, SO_SNDTIMEO, tiempo de espera, sizeof(timeout))

; intret=setsockopt(sock_fd, SOL_SOCKET, SO_RCVTIMEO, timeout, sizeof( tiempo de espera)); y solaris, entonces No compatible.

¿Qué debo hacer si el número máximo de puertos Linux supera los 65535?

¡Asegúrate de distinguir entre el número de puertos y el número de conexiones!

Es cierto que el número de puertos que se pueden abrir en un ordenador es sólo 65536. Si está lleno, será imposible abrirlo. Esto es un hecho. Pero también debe tenerse en cuenta que el puerto no siempre le pertenece a usted después de que esté ocupado. Puede liberarlo cuando no lo necesite. Después de liberarlo, otros programas pueden continuar usándolo. Es difícil ocupar todos los puertos.

En segundo lugar, debemos distinguir entre puertos y conexiones. Un puerto puede tener varias conexiones, como nginx. En Linux normal, un puerto 80 puede tener 100.000 conexiones simultáneas, y puede llegar a casi un millón. Por lo tanto, debido a la reutilización de puertos, en realidad no se utilizan tantos puertos.

Por lo tanto, el mito de que 65536 puertos están agotados básicamente no sucederá.

¿Cómo lidiar con la cancelación de un pedido por tiempo de espera?

1. Sondeo regular

El método más simple es escribir la lógica de cancelación del pedido. Generalmente, es obtener los pedidos con estado de pago pendiente de la tabla de pedidos y luego. realice el procesamiento de cancelación transversal, utilizando Linux El crontab del sistema ejecuta periódicamente la función de cancelación de orden.

Ventajas: simple y rápido, puede considerarse para pequeñas empresas

Desventajas:

Debido a las limitaciones de Linux, solo puede tener una precisión de segundos

La frecuencia de sondeo no se puede controlar de forma independiente. Si la operación, el mantenimiento y el desarrollo se gestionan por separado, cada ajuste requiere una modificación de la configuración de operación y mantenimiento.

Si el primer sondeo lleva mucho tiempo y. el segundo sondeo comienza de nuevo, provocará que las tareas se ejecuten repetidamente

Ocupan recursos de la base de datos

No se pueden ejecutar al mismo tiempo

Programación de tareas

Algunos frameworks web tendrán funcionalidad de programación de tareas, como el framework Laravel para php.

Ventajas:

La frecuencia de sondeo se puede controlar mediante código y no depende completamente del sistema;

Las tareas se pueden ejecutar repetidamente

Desventajas: similar al sondeo programado

3. Procesamiento de cola retrasado

Si el sistema tiene demasiados pedidos para procesar, el tiempo de procesamiento será muy largo si un sondeo no es. terminado, pero comienza la segunda vez, provocará la ejecución repetida de la tarea y, al mismo tiempo, inhibirá la ocupación de los recursos de la base de datos, lo que provocará una gran presión sobre la base de datos. Utilice una cola de retraso para manejar las cancelaciones de pedidos y configure. El tiempo de demora después de enviar la orden es de 30 minutos para ejecutarse, la eficiencia será mucho mayor. Las colas de demora más utilizadas incluyen

redis (evento de invalidación de clave de suscripción)

La cola. que viene con el marco (como la cola que viene con la cola del marco Laravel)

cola de retraso de RabbitMQ

Ventajas:

No es necesario sondear el pedido tabla, lo que reduce la presión de la base de datos

Ejecución sin duplicación

Alta eficiencia

Puede cooperar con el procesamiento multiproceso

Conveniente para agrupaciones con grandes volúmenes de negocios

No depende del crontab del sistema

p>

Tiempo de espera del enlace emergente de la base de datos de enlaces PLSql, ¿qué debo hacer?

Por favor, además de los contenidos de inspección enumerados en el primer piso, verifique también los siguientes contenidos:

1): Si la empresa tiene un firewall, debe verificar el tiempo de espera configuración del firewall;

2): Si su base de datos está en un entorno Linux/Uinx, debe verificar la configuración de los parámetros keepalive relevantes.