Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

itml/schedule

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

15 Commits

Repository files navigation

schedule

thinkphp 任务调度

代码实现主要参考 laravel 相关用法请参考 laravel

具体用法:

第一步 运行指令

php think make:command Schedule schedule:run

会生成一个app\console\Schedule命令行指令类,我们修改内容如下:

namespace app\command;
use schedule\console\Command;
use think\console\Input;
use think\console\Output;
class Schedule extends Command
{
 protected function configure()
 {
 $this->setName('schedule:run');
 }
 protected function execute(Input $input, Output $output)
 {
 //每天的上午十点和晚上八点执行这个命令
 $this->command('test')->twiceDaily(10, 20);
 parent::execute($input, $output);
 }
}

继续运行指令

php think make:command Test test

第二步,配置config/console.php文件

<?php
return [
 'commands' => [
 'schedule:run'=>\app\command\Schedule::class,
 'test' => 'app\command\Test',
 ]
];

第三步,您应该在crontab中添加以下命令:

* * * * * php /path/to/think schedule:run >> /dev/null 2>&1 

时间表范例 此扩展支持Laravel Schedule的所有功能,环境和维护模式除外。 Scheduling Closures

$this->call(function()
{
 // Do some task...
})->hourly();

Running command of your application

$this->command('migrate')->cron('* * * * *');

Frequent Jobs

$this->command('foo')->everyFiveMinutes();
$this->command('foo')->everyTenMinutes();
$this->command('foo')->everyThirtyMinutes();

Daily Jobs

$this->command('foo')->daily();

Daily Jobs At A Specific Time (24 Hour Time)

$this->command('foo')->dailyAt('15:00');

Twice Daily Jobs

$this->command('foo')->twiceDaily();

Job That Runs Every Weekday

$this->command('foo')->weekdays();

Weekly Jobs

$this->command('foo')->weekly();
// Schedule weekly job for specific day (0-6) and time...
$this->command('foo')->weeklyOn(1, '8:00');

Monthly Jobs

$this->command('foo')->monthly();

Job That Runs On Specific Days

$this->command('foo')->mondays();
$this->command('foo')->tuesdays();
$this->command('foo')->wednesdays();
$this->command('foo')->thursdays();
$this->command('foo')->fridays();
$this->command('foo')->saturdays();
$this->command('foo')->sundays();

Only Allow Job To Run When Callback Is True

$this->command('foo')->monthly()->when(function()
{
 return true;
});

About

thinkphp 任务调度,thinkphp,schedule

Resources

Stars

Watchers

Forks

Packages

Contributors

Languages

  • PHP 100.0%

AltStyle によって変換されたページ (->オリジナル) /