PHP/Laravel的逻辑代码,带有Job Queue系统



我正在使用Laravel 3制作一个web scraper,并有一个队列系统resque

问题:我应该把抓取逻辑代码放在哪里?

  • 在worker/job类中?

  • 在由worker/job类静态调用的库类中?

  • 在一个控制器函数,并有工人/作业类触发控制器函数?

我目前在控制器函数中有它,所以我可以通过转到它的url来测试它。这也允许使用Cron循环作业,因为resque不允许循环作业。我仍然需要保留这种测试抓取功能的简单方法。

尝试:这就是我在想的,你将如何为这样的目的组织你的代码?

工人阶级

class ScraperWorker
{
    public function perform()
    {
        $url = $this->args['url']
        Scraper::do_scrape($url);
    }
}
<<p> 刮类/strong>
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);
    }
}

我认为你是对的。你可以改变的一件事是使Scraper及其方法不是静态的。这将使它不会更难使用,但更容易进行单元测试。当Scraper变得更复杂并且需要配置时,这一点变得尤其重要。

p。检查PHP-Spider:一个可扩展和可配置的爬虫/scraper。它可以为你节省很多工作。完全披露:这是我写的

最新更新