Maison  >  Article  >  développement back-end  >  Comment implémenter des tâches planifiées dans Laravel

Comment implémenter des tâches planifiées dans Laravel

小云云
小云云original
2018-01-30 10:14:022607parcourir

Les tâches planifiées sont une exigence très courante dans le processus de développement back-end, apparaissant souvent dans les statistiques de données, le nettoyage du spam et d'autres scénarios. Laravel fournit un ensemble complet d'outils de tâches planifiées, de sorte que nous devons uniquement nous concentrer sur la réalisation de la logique, et il s'occupera du reste du travail de base.

Cet article présente principalement l'exemple de code pour implémenter les tâches planifiées dans Laravel. L'éditeur pense qu'il est plutôt bon, je vais donc le partager avec vous maintenant et le donner comme référence. Suivons l'éditeur pour y jeter un œil, j'espère que cela pourra aider tout le monde.

Générer la commande


php artisan make:command AreYouOK

5.2 et versions antérieures, cette commande est `php artisan make:console xxx`

Modifier les commandes

Modifiez le fichier `app/Console/Commands/AreYouOK.php` et apportez les modifications suivantes :


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

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

Commande d'enregistrement

Modifiez le fichier `app/Console/Kernel.php` et enregistrez la classe nouvellement générée :


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

Écrivez la logique d'appel :


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

La logique ci-dessus est appelée une fois par minute. Laravel fournit des fonctions temporelles de différentes durées allant d'une minute à un an, qui peuvent être appelées directement.

Enregistrez ce projet Laravel dans le cron du système

Modifiez le fichier `/etc/crontab` et ajoutez le code suivant :

Copiez le code Le code est le suivant :


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

`/var/www/xxxlaravel` dans la ligne ci-dessus doit être remplacé par le chemin réel.

fire

Redémarrez cron pour activer cette fonction : `systemctl restart crond.service`, c'est fait !

Recommandations associées :

JS implémente des tâches planifiées pour demander le timing setInterval en arrière-plan et les problèmes de requête ajax toutes les N secondes

Exemple de code NodeJs pour implémenter des tâches planifiées

Comment obtenir le jeton d'accès WeChat par les tâches planifiées PHP

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn