Laravel 3を使用してWebスクレイパーを作成しており、キューシステムがありますresque
。
質問:スクレイピングロジックコードはどこに配置すればよいですか?
労働者/仕事のクラスでは?
ワーカー/ジョブクラスによって静的に呼び出されるライブラリクラスでは?
コントローラー関数で、ワーカー/ジョブクラスにコントローラー関数をトリガーさせますか?
私は現在それをコントローラー関数に持っているので、そのURLに移動してテストできます。resque
これにより、定期的なジョブが許可されないため、Cronを使用した定期的なジョブも許可されます。スクレイピング機能をテストするこの簡単な方法を維持する必要があります。
試み:これが私が考えていることですが、そのような目的のためにコードをどのように整理しますか?
労働者クラス
class ScraperWorker
{
public function perform()
{
$url = $this->args['url']
Scraper::do_scrape($url);
}
}
スクレイピングクラス
class Scraper
{
public static function do_scrape($url) {
//some scraping code
}
}
コントローラクラス
迅速なテストのため、およびCronジョブがヒットするため
class Scraper_Controller extends Base_Controller {
public function test_scrape($url) {
Scraper::do_scrape($url);
}
}