2011-12-22 6 views
10

Tengo algunos cronjob que resumen los datos y validan los datos de mi sitio. Algunos de ellos tienen procesos que deben ejecutarse en segundo plano.ejecutando procesos en el fondo php

Ejemplo:

cronjob1.php execute cronjob2.php using exec 

Este cronjob2.php ejecuta otro cronjob3.php usando exec y cronjob3 debe ser completado acabado entonces cronjob2 y luego cronjob.

Actualmente tengo un problema donde el cronjob1.php tarda 2 horas en terminar.

¿hay una mejor manera de ejecutar esto para que funcione más rápido?

Usted

+3

qué tipo de tareas son las que trabajo Cron ¿obra? difícil para nosotros juzgar si puede ejecutarse más rápido – RageZ

+0

resumir los datos y validar las estadísticas de visitantes, estadísticas de productos - cpa, cpc, # de pedidos, etc ... –

+0

algunos consejos genéricos, tratar de tener una conexión permanente a la base de datos, optimizar su base de datos creando un índice específico y tratando de simplificar u optimizar la lógica de tus scripts – RageZ

Respuesta

18

Gracias Hay algunas cosas que usted puede hacer:

  • asegurarse de que la secuencia de comandos utiliza la conexión permanente, de esta manera no se pierde tiempo la conexión y desconexión del servidor de base de datos.
  • implementar un mecanismo de registro, para que pueda identificar qué parte del script ejecutar lentamente, registrar el tiempo dedicado a cada consulta de base de datos sería una buena idea
  • intentar optimizar su base de datos tanto como sea posible, debe usar en consultas lentas y crea los índices necesarios.
0

si cronjob1 tienen muchas operaciones de base de datos de crear procedimientos almacenados para eso y hacer que la indexación en la mayoría de campos de la tabla de uso

esta tarea programada aumentar su rendimiento ....

Cuestiones relacionadas