Php 在laravel中一次性发布所有计划任务

Php 在laravel中一次性发布所有计划任务,php,laravel,pthreads,scheduled-tasks,scheduling,Php,Laravel,Pthreads,Scheduled Tasks,Scheduling,我在数据库中有一个特定时间的预定帖子列表。我使用crontab调用该函数,并使用foreach循环执行所有操作 我的问题是假设同一用户上午10:00同时发布了10篇文章,现在crontab将触发事件并调用函数,这里我获取所有10篇文章并将其传递给foreach循环 现在,当最后10个帖子完成时,时间将是上午10:10,完成一个帖子需要1分钟或更少的时间。现在用户会想,为什么一篇原定于上午10点发布的帖子会在上午10点发布 我希望所有的帖子都能同时发布,请给我一些解决方案,我知道我需要使用多线程的

我在数据库中有一个特定时间的预定帖子列表。我使用crontab调用该函数,并使用foreach循环执行所有操作

我的问题是假设同一用户上午10:00同时发布了10篇文章,现在crontab将触发事件并调用函数,这里我获取所有10篇文章并将其传递给foreach循环

现在,当最后10个帖子完成时,时间将是上午10:10,完成一个帖子需要1分钟或更少的时间。现在用户会想,为什么一篇原定于上午10点发布的帖子会在上午10点发布

我希望所有的帖子都能同时发布,请给我一些解决方案,我知道我需要使用多线程的概念。我需要帮助

这是我的代码,我是怎么做的

在crontab下面我有这个

***cd/var/www/html&&php artisan schedule:run>/dev/null 2>&1

在内核下我有这个

  {
    $schedule->command('schedule:post')->everyMinute();
  }
在Console->Commands->SchedulePost.php文件下

   public function handle(PostService $service) 
{   
    $curent_time = Carbon::now();
    $posts = ScheduledPosts::where('status',2)->where('actual_post_time',date('Y-m-d H:i'))->get();
    foreach ($posts as $key => $post) {

    // here am calling post service which will actually do post
    $post_done = $service->post($user, $newpost->message,$newpost->id);

    }

}

您是否通过以下代码插入任何内容$post_done=$service->post($user,$newpost->message,$newpost->id)@KaushikThakkar,是的,发布后保存到数据库中。您尝试过批量插入吗?我想这对你有用。