Robię skrobaczkę internetową przy użyciu Laravel 3 i mam system kolejkowy resque
.Kod logiczny w PHP/Laravel z systemem kolejki zadań
Pytanie: Gdzie należy umieścić kod logiczny skrobania?
W kategorii pracownik/praca?
W klasie biblioteki, która jest nazywana statycznie przez robotnika/klasę zadania?
W funkcji kontrolera i czy robot/klasa zadań wyzwala funkcję kontrolera?
Obecnie mam go w funkcji kontrolera, więc mogę przetestować go, przechodząc do jego adresu URL. Pozwala to również na powtarzanie zadań za pomocą Cron, ponieważ resque
nie pozwala na powtarzające się zadania. Nadal będę musiał zachować łatwy sposób testowania funkcji skrobania.
Próba: Oto co mam na myśli, w jaki sposób można zorganizować swój kod do takich celów?
Pracownik Class
class ScraperWorker
{
public function perform()
{
$url = $this->args['url']
Scraper::do_scrape($url);
}
}
Skrobanie Klasa
class Scraper
{
public static function do_scrape($url) {
//some scraping code
}
}
klasy Controller
Do szybkiego testowania i dla crona trafić
class Scraper_Controller extends Base_Controller {
public function test_scrape($url) {
Scraper::do_scrape($url);
}
}