Laravel求职网站是否在线

时间:2019-02-25 11:53:43

标签: php laravel

在每个帖子上,我都有一个网址。我需要获取状态并每小时检查一次此站点是否在线。我如何使用队列Laravel做到这一点?我有一个工作CheckPostSite:

public function handle()
{
$allposts = Post::all();

foreach($allposts as $post) {
     if($this->checkOnline($post->site_url) {
          $post->website_online = true;
          $post->save();
     }
}
}

private function checkOnline($domain) {
$curlInit = curl_init($domain);
curl_setopt($curlInit,CURLOPT_CONNECTTIMEOUT,10);
curl_setopt($curlInit,CURLOPT_HEADER,true);
curl_setopt($curlInit,CURLOPT_NOBODY,true);
curl_setopt($curlInit,CURLOPT_RETURNTRANSFER,true);

//get answer
$response = curl_exec($curlInit);

curl_close($curlInit);
if ($response) return true;
return false;
}

我做对了吗?或不?我的数据库中有10000多个帖子。

1 个答案:

答案 0 :(得分:0)

要进行实际的排程-请按照文档中的步骤进行 https://laravel.com/docs/5.7/scheduling#scheduling-artisan-commands 与相关的2个步骤:

  1. 确保您在服务器上执行了一项cron作业,以实际运行作业计划程序(而不是您的作业,该作业将启动您的作业)

            • cd / path-to-your-project && php artisan schedule:run >> / dev / null 2>&1
  2. 将您自己的作业添加到Console / Kernel.php的调度方法中

    $ schedule-> job(new CheckPostSite())-> hourly();

但是在开发过程中,您可以使用修补匠来测试工作:

php artisan tinker
$job = new CheckPostSite()
$job->handle()