.: HosiriS :.

Informatica e non solo

Schedulare procedure su MySQL

Posted by hosiris su aprile 16, 2012

Come sempre non si finisce mai di imparare (e se non ci credete chiedete a Kintaro Oe).

Oggi mi si è presentato il problema di dover avviare in automatico dei processi su MySQL e mentre stavo già assaporando un bel scriptino in Python da mettere in crontab mi è venuto in mente di vedere se la rete fornisse soluzioni alternative… Pensate un po’, lo stesso MySQL, a partire dalla 5.1, ci viene in aiuto.

Il processo si chiama event_scheduler e deve essere attivato per poter raggiungere il nostro scopo. Per cui lanciamo il seguente comando:


mysql> SET GLOBAL event_scheduler = ON;

Questo comando attiverà il processo solo per la sessione corrente, se volete che questo sia sempre attivo dovrete impostare il valore sul my.cnf.

Fatto ciò andiamo a creare il nostro evento:


DELIMITER |

CREATE EVENT `insert_number`
ON SCHEDULE
  EVERY 10 MINUTE STARTS CURRENT_TIMESTAMP
DO
  BEGIN
    INSERT INTO `db`.`backup`
      SELECT * FROM `db`.`table`
      WHERE `table`<CURRENT_TIMESTAMP;
  END |

DELIMITER ;

Lo script fa ridere, ma mostra quanto sia semplice realizzare l’evento desiderato. Naturalmente non starò qui a riscrivere l’intera documentazione che potete trovare sul sito.

Buon divertimento

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

 
%d blogger cliccano Mi Piace per questo: