如何在特定日期到来时调用函数

时间:2018-01-29 21:53:56

标签: laravel

我有一个API(由Laravel制作)用于iOS应用程序,它基本上是一个事件管理器,我用户有一些点可以用于参加活动,如果他们说他们会去,但他们不是我必须拿出一些观点。

所以我的问题是如何在事件结束时调用下面的函数来取出积分。

public function takePoints(){

    $postUser = post_user::where('posts_id', '=', $id);

    foreach ($postUser as $post){
        if($post->state){
            $user = User::where('id', '=', $postUser->user_id);

            $user->points -= 50;

            $user->saveOrFail();
        }
    }
}

所以基本上是这样的:

if($post->date = $todaysDate){
  $this->takePoints()
}

1 个答案:

答案 0 :(得分:1)

您将使用Laravel的任务计划来运行定期检查并在指定时间过后执行操作。

https://laravel.com/docs/5.5/scheduling

它运行在cron之上,允许您创建在控制台内核中定义的时间段运行的命令。

// add this to cron to run every minute
* * * * * php /path-to-your-project/artisan schedule:run >> /dev/null 2>&1

在内核中,您可以安排任务:

$schedule->job(new Heartbeat)->everyFiveMinutes();