greg-doak/cron-bundle

此扩展包提供cron管理功能。

安装: 20

依赖项: 0

建议者: 0

安全性: 0

星星: 0

关注者: 2

分支: 0

开放问题: 0

类型:symfony-bundle

dev-master / 1.x-dev 2018-03-27 15:14 UTC

This package is not auto-updated.

Last update: 2024-09-29 05:49:18 UTC


README

此扩展包为您的Symfony项目提供cron管理工具。

安装

将greg-doak/cron-bundle添加到您的composer.json文件中。

$ composer require greg-doak/cron-bundle

在config/bundles.php中注册该扩展包。

return [
    // ...
    GregDoak\CronBundle\GregDoakCronBundle::class => ['all' => true],
];

创建数据库表。

$ php bin/console doctrine:migrations:diff
$ php bin/console doctrine:migrations:migrate

或者

$ php bin/console doctrine:schema:update --force

创建第一个任务。

$ php bin/console cron:create

配置

将调度程序添加到cron中。

*/5 * * * * php /root/to/your/application/bin/console cron:run:scheduled

或者,在页面请求时运行调度程序,请配置services.yaml。

parameters:
    // ...
    gregdoak.cron.run_on_request: true

这可能会引起性能问题,因此建议仅在开发环境中运行。

使用

运行单个任务,您将被提示选择要运行的任务。

$ php bin/console cron:run:single

终止正在运行的任务,您将被提示选择正在运行的任务。

$ php bin/console cron:kill

更新任务。

$ php bin/console cron:update

注意事项

创建了3个数据库表。

cron_jobs - 每次运行调度程序或单个任务时都会创建一条记录,确保任务不能同时运行。它还记录开始和结束时间,以衡量整个作业的性能。

cron_job_tasks - 每条记录包含一个单独的任务,正在运行的任务将通过记录cron_job_id来保留。

cron_job_logs - 每个任务都会创建一个日志,记录输出、退出代码、开始和结束时间。