Php Laravel工作检查网站(如果在线)

Php Laravel工作检查网站(如果在线),php,laravel,Php,Laravel,在每个帖子上我都有一个网址。我需要得到状态,并检查每个小时,如果这个网站是在线的。我怎么能用拉威尔做到?我有一个工作检查站: public function handle() { $allposts = Post::all(); foreach($allposts as $post) { if($this->checkOnline($post->site_url) { $post->website_online = true;

在每个帖子上我都有一个网址。我需要得到状态,并检查每个小时,如果这个网站是在线的。我怎么能用拉威尔做到?我有一个工作检查站:

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多篇文章。

要进行实际的日程安排,请按照文档中的步骤进行操作 通过相关的两个步骤:

  • 确保您在服务器上有一个cron作业,以实际运行作业计划程序(不是您的作业,而是将启动作业的计划)

            • 项目的cd/路径和php artisan计划:运行>>/dev/null 2>&1
  • 将您自己的作业添加到Console/Kernel.php的schedule方法中

    $schedule->job(新建CheckPostSite())->hourly()

  • 但在开发过程中,您可以通过使用tinker来测试工作:

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

    如果一切正常,这个问题就不存在了,对吧?你真正的问题是什么,什么不起作用?不需要担心,但如果你有几个URL要检查,请看一下滚动卷曲包装器。有一些“易于使用”的libs,比如。我用它来检查这个脚本中的几个URL:。希望有帮助。