Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Mysql PHP Cron do aktualizacji statystyk użytkownika

MySQL rozwiązanie:

Potrzebujesz MySQL event biegać na podstawie czasu.

I proponuję napisać update oświadczenia w oparciu o Twój stan i połącz tę samą procedurę z harmonogramem zdarzeń, który chcesz uruchamiać na początku każdego dnia.

Możesz to zrobić w następujący sposób:.

Przykład :

delimiter //
drop event if exists event_scheduling_sample;

create event if not exists event_scheduling_sample
--  on schedule every 86400 second starts 00:00:00
--  at timestamp( adddate( current_date, 1 ),'00:00:00' )
--  on schedule every 1 day 
    --   starts current_timestamp 
    --   ends current_timestamp + interval '5' day
--  on schedule every 1 day 
    --   starts current_timestamp 
    --   ends timestamp( current_date,'23:59:59' )

  on schedule every 1 day 
     starts timestamp( current_date + 1, '00:00:00' )

  comment 'event scheduling sample'
  do
    call db_name.procedure_name_that_updates_the_user_records();
;
//
delimiter ;

Patrz :MySQL:CREATE EVENT Składnia

Domyślny stan Harmonogramu zdarzeń to WYŁĄCZONY.
Wymagasz włączenia go za pomocą dowolnej z poniższych instrukcji.

SET GLOBAL event_scheduler = ON;
SET @@global.event_scheduler = ON;
SET GLOBAL event_scheduler = 1;
SET @@global.event_scheduler = 1;

Gdy harmonogram zdarzeń jest WŁĄCZONY, wątek harmonogramu zdarzeń jest wyświetlany w danych wyjściowych SHOW PROCESSLIST jako proces demona, a jego stan jest przedstawiony w następujący sposób:

mysql> SHOW PROCESSLIST\G
*************************** 1. row ***************************
     Id: 1
   User: root
   Host: localhost
     db: NULL
Command: Query
   Time: 0
  State: NULL
   Info: show processlist
*************************** 2. row ***************************
     Id: 2
   User: event_scheduler
   Host: localhost
     db: NULL
Command: Daemon
   Time: 3
  State: Waiting for next activation
   Info: NULL
2 rows in set (0.00 sec)

Po włączeniu harmonogramu zdarzeń zobaczysz, że działa.

Patrz :Konfiguracja harmonogramu zdarzeń MySQL




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. wybierz z tabeli mysql rekordy należące do dzisiaj

  2. Jak dodać klienta za pomocą JDBC dla ClientDetailsServiceConfigurer w Springu?

  3. Kolumna „Aktualizacja sygnatury czasowej” MySQL — wyzwalacz

  4. Mysql - znajdź tabelę w całej bazie danych

  5. Dlaczego maksymalny limit czasu MySQL wynosi 838:59:59?