foowie / cron
Cron
Requires
- php: >=5.6
- nette/application: ^2.4
- nette/bootstrap: ^2.4
- nette/database: ^2.4
- nette/di: ^2.4
- nette/utils: ^2.4
- tracy/tracy: ^2.4
Requires (Dev)
- doctrine/dbal: ~2.5
- doctrine/orm: >=2.4 <2.7.3
- kdyby/doctrine: ~3.2
- nette/tester: ~2.0
Suggests
- doctrine/orm: ORM framework
- kdyby/doctrine: Nette extension for Doctrine 2
This package is auto-updated.
Last update: 2024-09-20 15:15:40 UTC
README
Nette 框架的 Cron 扩展
对于安装,请在 bootstrap 或配置文件中使用 CronExtension。需要创建由 cron.sql 文件定义的数据库表。但是,这仅在使用 MidnightJob 或 TimeIntervalJob 时才是必需的。
所有应作为 cron 任务运行的作业都必须实现 IJob 接口,或者您可以使用 CallbackJob 来避免此要求。
有两种类提供延迟 cron 作业执行。一个是 MidnightJob,它在午夜后立即执行给定的 IJob。另一个是 TimeIntervalJob,它每隔给定的时间间隔重复执行任务。
要使用 Cron 处理作业,您应在配置文件中的每个服务上定义 [cronJob] 标签。
例如,如果您有一个每小时需要处理的 FooClass 类,您必须在配置文件中指定
services:
foo: FooClass
fooJob:
class: Foowie\Cron\Job\TimeIntervalJob('foo', '1 hour', @foo)
tags: [cronJob]
注意,在 TimeIntervalJob 类中的第一个参数是 cron 任务的唯一名称。如果 FooClass 没有实现 IJob 接口,您可以使用 CallbackJob 装饰器。
services:
foo: FooClass
fooJobDecorator: Foowie\Cron\Job\CallbackJob([@foo, 'methodNameToExecute'])
fooJob:
class: Foowie\Cron\Job\TimeIntervalJob('foo', '1 hour', @fooJobDecorator)
tags: [cronJob]
要选择和执行任务,请运行 Cron::run() 方法。
默认情况下,FoowieCron 模块中的 CronPresenter 映射到 URL /cron/。要使用此演示者,需要在配置文件中指定键为 securityToken 的令牌。要禁用安全令牌,将其值设置为 null。要禁用 CronPresenter,将配置中的 mapPresenter 属性设置为 false。
还支持 Doctrine 2。默认行为是自动检测使用的 ORM。您可以在配置中使用键 repositoryType [ndb, doctrine] 手动设置它。实体 Foowie\Cron\JobInfo 在 src/Foowie/Cron/metadata/Foowie.Cron.JobInfo.dcm.xml 中具有映射元数据。如果您使用 Kdyby\Doctrine,则 KdybyDoctrineCronExtension 也映射此实体。