mattmezza/scheduled-job

一个用于使用cron运行定时任务的包。

1.0.0 2019-02-11 21:19 UTC

This package is auto-updated.

Last update: 2024-09-12 10:15:15 UTC


README

Travis (.org)

安装

composer require mattmezza/scheduled-job

用法

1. 创建任务
class MyTask extends TaskStandard {

    public function getDescriptionString(): string
    {
        return 'Task description';
    }

    public function run(array $allParam)
    {
        // do something
    }
}
2. 创建工作
class MyJob extends JobStandard {

    public function getDescriptionString(): string
    {
        return 'Job description';
    }

    public function getAllTask(): array
    {
        return [
            new MyTask(),
        ];
    }
}
3. 运行工作
(new JobExecutorStandard())->execute($job, $argv]);
4. 观察工作和任务

您可以为工作和任务附加观察者。

$job->addObserver(new JobLogger());
$task->addObserver(new TaskLogger());

您可以通过实现 JobObserverTaskObserver 来定义自定义观察者。

5. 使用cron自动化

创建一个PHP脚本文件,您可以通过cron运行它 ~/your-project/your-job.php

#!/usr/bin/env php

<?php

$job = ... # create the job as above

try {
    (new JobExecutorStandard())->execute($job, $argv]);
} catch (YourException $error) {
    // Oops, something happened...
}

通过 crontab -e 在crontab中添加cron条目

# run five minutes after midnight, every day 
5 0 * * * $HOME/your-project/your-job.php >> $HOME/tmp/out 2>&1

开发

  • 添加不同类型的工作将很有用,每种工作都专门用于某种方式(例如,内存密集型等...)