laravel定时任务,tp定时任务,thinkphp定时任务

简介: laravel定时任务,tp定时任务,thinkphp定时任务

本文基于Laravel Framework 6.17.1版本

(1).创建项目(依赖真多,如此臃肿)

composer create-project --prefer-dist laravel/laravel blog
(2).安装定时任务composer包

composer require think-task/think-task
(3).执行创建命令行处理类文件(自动生成了文件app/Console/Commands/Task.php)

php artisan make:command Task
(4).修改第3步创建的app/Console/Commands/Task.php为以下内容

<?php

namespace App\Console\Commands;

use Illuminate\Console\Command;

class Task extends Command
{

/**
 * The name and signature of the console command.
 *
 * @var string
 */
protected $signature = 'task{action=start}';

/**
 * The console command description.
 *
 * @var string
 */
protected $description = 'Command description';

/**
 * Create a new command instance.
 *
 * @return void
 */
public function __construct()
{
    parent::__construct();
}

/**
 * Execute the console command.
 *
 * @return mixed
 */
public function handle()
{
    $action = $this->argument('action');
    // 初始化EasyTask
    $task = new \ThinkTask\Task();

    // 设置项目名称
    $task->setPrefix('Think');

    // 设置后台运行
    $task->setDaemon(false);

    // 设置日志保存目录
    $task->setRunTimePath('./bootstrap/cache/');

    // 添加闭包任务,开2个进程5s执行1次访问网址
    $task->addFunc(function () {
        @file_get_contents('http://xingxinghan.cn/?id=6');
    }, 'Curl_1', 5, 3);

    // 添加执行tp默认控制器的方法,开1个进程10s执行1次访问网址
    //$task->addClass('\app\index\controller\Index', 'index', 'Curl_2', 10, 1);

    // 根据命令执行
    if ($action == 'start')
    {
        $task->start();
    }
    if ($action == 'status')
    {
        $task->status();
    }
    if ($action == 'stop')
    {
        $task->stop();
    }
}

}
(5).将上面的文件注册一下(修改app/Console/Kernel.php文件)

protected $commands = [
\App\Console\Commands\Task::class
];
(6).执行命令(windows请使用cmd,由于cmd不支持utf8编码,可以在本站搜索关键字“乱码”相关文章处理),:

php artisan task start 启动命令
php artisan task status 查询命令
php artisan task stop 关闭命令
提示:后台执行失败可修改为前台启动查看问题或者查看日志文件,有问题可以在qq群反馈bug

目录
相关文章
|
7月前
|
Java 调度 Spring
SpringBoot实现多线程定时任务动态定时任务配置文件配置定时任务
SpringBoot实现多线程定时任务动态定时任务配置文件配置定时任务
685 0
|
6月前
|
存储 监控 调度
Django中的定时任务与后台任务队列的实践
【6月更文挑战第10天】在Django中实现定时任务和后台任务队列,可以使用Celery+Beat进行定时任务,Django Q处理后台任务。Celery配置包括设置Broker和Result Backend,创建Celery实例及任务。Django Q则涉及安装、配置ORM和创建任务。通过`async_task`将任务放入队列。注意性能、资源、安全和错误处理。使用时需考虑认证、输入验证、日志监控、部署策略和测试质量保障。
74 3
Django中的定时任务与后台任务队列的实践
|
5月前
|
监控 Java 调度
若依修改定时任务,定时任务在系统监控的定时任务当中,宕机情况都不会去管,涉及到定时任务
若依修改定时任务,定时任务在系统监控的定时任务当中,宕机情况都不会去管,涉及到定时任务
|
NoSQL Java 调度
定时任务基本使用指南(cron 时间表达式、Spring 自带调度器、JDK 原生定时器)
定时任务基本使用指南(cron 时间表达式、Spring 自带调度器、JDK 原生定时器)
660 0
|
消息中间件 算法 Java
定时任务实现方案总结
定时任务实现方案总结
101 0
定时任务实现方案总结
|
关系型数据库 MySQL 调度
定时任务优化
简单描述一下定时任务的优化
145 0
|
负载均衡 Java 数据挖掘
定时任务实现的几种方式
定时任务实现的几种方式
288 1
|
Java
简单实现一个定时任务
简单实现一个定时任务
132 0
|
Java Spring
使用定时任务 随着项目启动定时执行
使用定时任务 随着项目启动定时执行
321 0