Realizzo un raschiatore web utilizzando Laravel 3 e un sistema di code resque
.Codice logico in PHP/Laravel con sistema Job Queue
Domanda: Dove devo inserire il codice logico di scraping?
Nel lavoratore/nella classe di lavoro?
In una classe di libreria che viene definita staticamente dal worker/job class?
In una funzione di controllo e l'operatore/la classe di lavoro attiva la funzione di controllo?
Attualmente l'ho nella funzione controller in modo che possa verificarlo andando al suo URL. Ciò consente inoltre di ricorrere a lavori ricorrenti utilizzando Cron, poiché resque
non consente processi ricorrenti. Avrò ancora bisogno di mantenere questo modo semplice di testare le funzioni di raschiatura.
Tentativo: Ecco a cosa sto pensando, come organizzerai il tuo codice per tali scopi?
Worker Class
class ScraperWorker
{
public function perform()
{
$url = $this->args['url']
Scraper::do_scrape($url);
}
}
Raschiare Classe
class Scraper
{
public static function do_scrape($url) {
//some scraping code
}
}
controller Classe
Per il test rapido, e per i lavori di cron per colpire
class Scraper_Controller extends Base_Controller {
public function test_scrape($url) {
Scraper::do_scrape($url);
}
}