systemadmin.es » DBA » El event scheduler de MySQL 5.1

El event scheduler de MySQL 5.1

Una de las mejoras de MySQL 5.1 es el event scheduler. Vamos a ver como funciona.

El event scheduler es como un cron interno de MySQL. Mediante SHOW PROCESSLIST podemos verlo si esta activado:

mysql> show full processlist;
+-------+-----------------+-----------+----------+---------+--------+------------------------+-----------------------+
| Id    | User            | Host      | db       | Command | Time   | State                  | Info                  |
+-------+-----------------+-----------+----------+---------+--------+------------------------+-----------------------+
|     1 | event_scheduler | localhost | NULL     | Daemon  | 122929 | Waiting on empty queue | NULL                  |
(...)
| 27686 | root            | localhost | NULL     | Query   |      0 | NULL                   | show full processlist |
+-------+-----------------+-----------+----------+---------+--------+------------------------+-----------------------+
110 rows in set (0.00 sec)

Si no lo vemos mediante SHOW VARIABLES podemos ver en que estado se encuentra. Las posibilidades son:

  • DISABLED: El event scheduler no esta disponible. Podemos darle permisos al usuario mediante el siguiente GRANT:
    GRANT EVENT ON systemadmin.* TO jordi@canals.systemadmin.es;
    
  • OFF: El scheduler esta deshabilidado, por lo que tenemos que modificar el /etc/my.cnf para añadir la siguiente linea:
    event_scheduler=on
    

    o mediante SET GLOBAL:

    mysql> SET GLOBAL event_scheduler=on;
    Query OK, 0 rows affected (0.00 sec)
    
  • ON: El scheduler ya esta habilidado, por lo que deberiamos verlo en la lista de procesos.

Un ejemplo de proceso podría ser uno que insertara la fecha en una tabla cada 5 segunos:

mysql> create event primer_evento
    -> on schedule every 5 second
    -> on completion preserve
    -> enable
    -> do insert into cron(data) values (NOW());
Query OK, 0 rows affected (0.04 sec)

mysql> select * from cron;
+----+---------------------+
| id | data                |
+----+---------------------+
|  1 | 2009-01-15 13:24:02 |
|  2 | 2009-01-15 13:24:07 |
|  3 | 2009-01-15 13:24:12 |
|  4 | 2009-01-15 13:24:17 |
|  5 | 2009-01-15 13:24:22 |
|  6 | 2009-01-15 13:24:27 |
|  7 | 2009-01-15 13:24:32 |
|  8 | 2009-01-15 13:24:37 |
|  9 | 2009-01-15 13:24:42 |
| 10 | 2009-01-15 13:24:47 |
| 11 | 2009-01-15 13:24:52 |
| 12 | 2009-01-15 13:24:57 |
| 13 | 2009-01-15 13:25:02 |
| 14 | 2009-01-15 13:25:07 |
(...)
+----+---------------------+
66 rows in set (0.00 sec)

Para consultar la sintaxis en detalle podéis verlo en el manual de MySQL 5.1 sobre el scheduler.

Relacionados

Imprimir Imprimir

One comment to “El event scheduler de MySQL 5.1”

  1. Hola! agregue esa linea al archivo de configuracion, reinicio mi maquina y de nuevo me aparece como apagado el event_scheduler, que me esta haciendo falta? gracias..

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>