Home  >  Article  >  Backend Development  >  How to implement scheduled tasks in Laravel

How to implement scheduled tasks in Laravel

小云云
小云云Original
2018-01-30 10:14:022606browse

Scheduled tasks are a very common requirement in the back-end development process, and often appear in scenarios such as data statistics and spam cleaning. Laravel provides a complete set of scheduled task tools, so that we only need to focus on completing the logic, and it will take care of the rest of the basic work.

This article mainly introduces the sample code for implementing scheduled tasks in Laravel. The editor thinks it is quite good, so I will share it with you now and give it as a reference. Let’s follow the editor to take a look, I hope it can help everyone.

Generate command


php artisan make:command AreYouOK

5.2 and previous versions, this command is `php artisan make:console xxx`

Edit command

Edit the `app/Console/Commands/AreYouOK.php` file and modify the following:


... ...
protected $signature = 'areyou:ok'; // 命令名称
protected $description = '雷军,科技圈最会唱歌的男人'; // 命令描述,没什么用

public function __construct()
{
  parent::__construct();
  // 初始化代码写到这里,也没什么用
}
public function handle()
{
  // 功能代码写到这里
}

Registration command

Edit the `app/Console/Kernel.php` file and register the newly generated class:


protected $commands = [
  \App\Console\Commands\AreYouOK::class,
];

Write calling logic:


protected function schedule(Schedule $schedule)
{
  $schedule->command('areyou:ok')
       ->timezone('Asia/Shanghai')
       ->everyMinute();
}

The above logic is called once every minute. Laravel provides time functions of various lengths from one minute to one year, which can be called directly.

Register this Laravel project to the cron of the system

Edit the `/etc/crontab` file and add the following code:

Copy code The code is as follows:


* * * * * root /usr/bin/php /var/www/xxxlaravel/artisan schedule:run >> /dev/null 2> &1

`/var/www/xxxlaravel` in the above line needs to be changed to the actual path.

fire

Restart cron to activate this function: `systemctl restart crond.service`, done!

Related recommendations:

JS implements scheduled tasks to request background setInterval timing and ajax request issues every N seconds

NodeJs sample code for implementing scheduled tasks

How to obtain WeChat access_token for PHP scheduled tasks

The above is the detailed content of How to implement scheduled tasks in Laravel. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn