- dodawanie artykułów do blogów typu WordPress (ich lista znajduje się w bazie)
- sprawdzanie zaindeksowania artykułów
- pingowanie artykułów
System będzie również wykonywał zadania niezależne typu:
- sprawdzanie poprawności funkcjonowania blogów zdefiniowanych w bazie
- wyszukiwanie i rejestracja w nowych blogach
Plik cron.php będzie odpalany co 1 minutę. Wygląda on tak:
Minus tego systemu jest taki, że wykonuje dużo operacji na bazie. Jeśli użytkownik zdefiniuje dodawanie artykułu do 3000 blogów do bazy dodawane jest 3000 rekordów, przy liczbie użytkowników > 100 mogą się w bazie tworzyć astronomiczne liczby rekordów (które są na bieżąco usuwane).
Czy to nie będzie zbyt obciążało bazy ?
include_once('functions.php'); connect_to_db(); if ($czas1[0] >= 1 && $czas1 <= 22) { //wykonujemy funkcje uzytkownikow $sql = "SELECT TOP "LICZNIK" * FROM task"; //pobieramy pierwsze 5 zadan (tyle zadan wykonujemy co 1 minute) switch($row['functions']) { case 'postuj': //jesli dodajemy do bloga $sql = "SELECT b.id as identyfikator, b.licznik as licznik, b.licznik_ping as licznik_ping, b.last_blog as last_blog, c.tytul as tytul, c.artykul as artykul, c.tagi as tagi, c.publikuj as publikuj FROM users LEFT JOIN settings_art c ON c.user_id=b.id WHERE c.publikuj='active'"; //pobieramy aktywny artykul $result_func = call_user_func('postuj', $row['licznik'], $row['tytul'], $row['artykul'], $row['tagi'], $row['identyfikator']); if ($result_func) { //jesli zadanie skompletowane to je usuwamy $sql = "DELETE * FROM task WHERE id=$row['id']"; } break; case 'ping': //inne funkcje które mogą definiować użytkownicy break; case 'index': break; default: break; } } } else { //dwie godziny na dobe poswiecamy na funkcje systemowe czyli sprawdzanie i weryfikacje blogow, adresow proxy itp. }
Struktura tabeli sql kazdy użytkownik może tworzyć dowolną ilość artykułów
CREATE TABLE `task` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_id` int(11) NOT NULL DEFAULT '0', `functions` varchar(80) NOT NULL DEFAULT '', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=0 ; CREATE TABLE `users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `login` varchar(80) NOT NULL DEFAULT '', `pass` varchar(80) NOT NULL DEFAULT '', `email` varchar(120) NOT NULL DEFAULT '', `data` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `licznik` int(11) NOT NULL DEFAULT '0', `licznik_ping` int(11) NOT NULL DEFAULT '0', `last_blog` varchar(80) NOT NULL DEFAULT '' PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=0 ; CREATE TABLE `settings_art` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_id` int(11) NOT NULL DEFAULT '0', `tytul` varchar(30) NOT NULL DEFAULT '', `artykul` text NOT NULL, `tagi` varchar(100) NOT NULL DEFAULT '', `publikuj` varchar(10) NOT NULL DEFAULT '', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=11 ;