bentools/crontab-bundle

根据应用目录生成 crontab。

0.2.1 2020-12-04 15:50 UTC

This package is auto-updated.

Last update: 2024-09-04 23:59:56 UTC


README

基于应用程序路径生成 crontab 的简单方法。

与类似的 Symfony 扩展包不同,这个包实际上替换了用户的 crontab,而不是提供一个工作进程。

⚠️ 如果您的用户 crontab 可能被其他进程修改,请不要使用此功能!

安装

此包与 Symfony 4/5+ 兼容。使用 0.1.* 标签以实现与早期版本的兼容性。

composer require bentools/crontab-bundle 0.2.*

使用 Symfony Flex,您已经完成了!

使用方法

config/crontab.dist 中创建一个示例 crontab 文件。

# config/crontab.dist

0 0 * * * php {%kernel.project_dir%}/bin/console your:favorite:command

如您所见,{%kernel.project_dir%} 是一个容器参数。它将在运行时替换为其当前值。您可以使用任何用大括号括起来的容器参数。

预览

这将为您提供 crontab 的预览。

php bin/console crontab:update --dry-run --dump

应用

要应用您的 crontab,请运行以下命令:

php bin/console crontab:update

现在,如果在您的 shell 中执行 crontab -l,您应该会看到类似以下内容:

0 0 * * * php /home/me/my-project/bin/console your:favorite:command

常见问题解答

我是否可以使用任何容器参数?

是的。

我不想将分发文件放在 config/crontab.dist。我可以更改它吗?

当然:创建一个 config/packages/bentools_crontab.yaml 文件,并更改 dist_file 参数。

bentools_crontab:
    dist_file: '%env(CRONTAB_SAMPLE_FILE)%' # That's an example.

命令选项有哪些?

--no-interaction # Skip confirmation question
--dry-run # Do not update crontab for real
--output-file=/path/to/generated_crontab # Change output file (which is a tmp file by default)
--dump # Show generated crontab content

我已经为运行我的应用程序的用户创建了一个 crontab。它是否会替换它?

是的。只有当您认为它是要成为唯一 crontab 条目点时,才使用此包。

测试

./vendor/bin/pest

许可证

MIT