draw / cron-job
此组件允许管理cron作业。
0.10.47
2024-09-25 20:25 UTC
Requires
- php: >=8.2
- doctrine/orm: ^2.11
- dragonmantank/cron-expression: ^3.3
- draw/core: ^0.10.47
- draw/messenger: ^0.10.47
- draw/process: ^0.10.47
- symfony/amqp-messenger: ^6.4.0
- symfony/console: ^6.4.0
- symfony/dependency-injection: ^6.4.0
- symfony/event-dispatcher: ^6.4.0
- symfony/messenger: ^6.4.0
Requires (Dev)
- draw/dependency-injection: ^0.10.47
- draw/tester: ^0.10.47
- nesbot/carbon: ^2.0
- phpunit/phpunit: ^11.3
This package is auto-updated.
Last update: 2024-09-25 20:26:32 UTC
README
此库用于从数据库中管理和处理cron作业。
cron作业被发送到队列,并由worker通过symfony messenger处理。
配置
以下是如何启用此包的方法
注意:以下为默认配置,可根据您的需求进行覆盖。
框架扩展
draw_framework_extra: # ... cron_job: enabled: true doctrine: orm: mappings: DrawCronJob: is_bundle: false type: attribute dir: ... prefix: Draw\Component\CronJob\Entity
注意:以下服务可用
- draw.cron_job.command.queue_cron_job_by_name_command: Draw\Component\CronJob\Command\QueueCronJobByNameCommand
- draw.cron_job.command.queue_due_cron_jobs_command: Draw\Component\CronJob\Command\QueueDueCronJobsCommand
- draw.cron_job.cron_job_processor: Draw\Component\CronJob\CronJobProcessor
- draw.cron_job.message_handler.execute_cron_job_message_handler: Draw\Component\CronJob\MessageHandler\ExecuteCronJobMessageHandler
Sonata集成
draw_sonata_integration: cron_job: enabled: true admin: cron_job: group: Cron Job entity_class: Draw\Component\CronJob\Entity\CronJob controller_class: Draw\Bundle\SonataIntegrationBundle\CronJob\Controller\CronJobController icon: fas fa-clock label: Cron Job pager_type: simple show_in_dashboard: true translation_domain: SonataAdminBundle cron_job_execution: group: Cron Job entity_class: Draw\Component\CronJob\Entity\CronJobExecution controller_class: Draw\Bundle\SonataIntegrationBundle\CronJob\Controller\CronJobExecutionController icon: null label: Cron Job Execution pager_type: simple show_in_dashboard: true translation_domain: SonataAdminBundle
Messenger
您需要配置messenger组件的路由,以处理用于处理cron作业的消息。
framework: messenger: routing: Draw\Component\CronJob\Message\ExecuteCronJobMessage: 'async'
用法
启用包后,将出现一个新的管理员页面 - Cron Job。该包还提供了2个控制台命令
- draw:cron-job:queue-due - 用于按配置处理到期的cron作业;应配置为每天执行一次 (* * * * *)
- draw:cron-job:queue-by-name - 允许通过名称参数手动处理cron作业