cron uitvoeren

12 34 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
——/ src /仓库/ CommentRepository.php+ + + b / src /仓库/ CommentRepository.php@@ -6,6 +6,7 @@使用App\Entity\Comment;使用App \实体\会议;使用原则\ \ DoctrineBundle \ Repository \ ServiceEntityRepository捆绑销售;使用原则\ \ ManagerRegistry持久性;+使用原则\ ORM \ QueryBuilder;使用原则\ ORM工具\ \分页\ Paginator;/** @@ -18,6 +19,8 @@使用Doctrine\ORM\Tools\Pagination\Paginator;*/ class CommentRepository扩展ServiceEntityRepository {+ private const days_before_rejected_remove = 7;+PAGINATOR_PER_PAGE = 2;公共函数__construct(ManagerRegistry $registry) @@ -25,6 +28,29 @@ class CommentRepository extends ServiceEntityRepository parent::__construct($registry, Comment::class);}+公共函数countoldreject (): int+ {+返回$this->getOldRejectedQueryBuilder()->select('COUNT(c.id)')->getQuery()->getSingleScalarResult();+}++公共函数deleteoldreject (): int+ {+返回$this->getOldRejectedQueryBuilder()->delete()->getQuery()->execute();+}++私有函数getOldRejectedQueryBuilder(): QueryBuilder+ {+返回$this->createQueryBuilder('c')+ - >引入(c。State =:state_rejected or c.state =:state_spam')+ - >引入(c。createdAt <:date')+ - > setParameters ([+ 'state_rejected' => 'rejected',+ 'state_spam' => 'spam',+ 'date' => new \DateTimeImmutable(-self::DAYS_BEFORE_REJECTED_REMOVAL。“天”),+))+;+}+getCommentPaginator(Conference $ Conference, int $offset): Paginator {$query = $this->createQueryBuilder('c')

提示

Voor complexere查询是het soms handig om de gegenereerde SQL语句te bekijken (deze zijn te vinden inde log en inde profiler Voor webrequests)。

应用:评论:清理门甚至src /命令/ CommentCleanupCommand.phpBestand aan te maken:

src /命令/ CommentCleanupCommand.php
12 34 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
名称空间应用程序命令使用应用程序存储库CommentRepository使用ob娱乐下载组件控制台属性AsCommand使用ob娱乐下载组件控制台命令命令使用ob娱乐下载组件控制台输入InputInterface使用ob娱乐下载组件控制台输入InputOption使用ob娱乐下载组件控制台输出OutputInterface使用ob娱乐下载组件控制台风格ob娱乐下载SymfonyStyle#[AsCommand('app:comment:cleanup', '从数据库中删除拒绝和垃圾评论')]CommentCleanupCommand扩展命令公共函数__construct(私人CommentRepositorycommentRepository, )::__construct ();}受保护的函数配置()->使用addOption (“管制”, InputOption::VALUE_NONE,“演习”);}受保护的函数执行(InputInterface输入, OutputInterface输出intioob娱乐下载SymfonyStyle (输入输出);如果输入->getOption (“管制”)) {io->注意(“启用干模式”);->commentRepository->countOldRejected ();}其他的->commentRepository->deleteOldRejected ();}io->成功(sprintf (删除“%d”旧的被拒绝/垃圾评论));返回命令::成功;}}

Alle命令van de applicatie zijn geregistreerd naast de Symfony ob娱乐下载ingebouwde命令en ze zijn allen toegankelijk viaob娱乐下载symfony控制台.Aangezien het aantal beschikbare命令flink kan oplopen, moet je ze een namespace geven。Volgens convention moeten de application -commands zich in de应用程序名称空间bevinden。Voeg een willekeurig aantal subnamespaces toe door ze te scheiden met een dubbele punt ().

甚至命令ontvangt de输入(argumenten opties die aan het command zijn doorgegeven) en je kunt de输出“从那控制台到施里耶文”。

Ruim de database op door het command uit te voeren:

1
ob娱乐下载Symfony控制台应用:注释:清理

.platform.app.yaml.De webcontainer, De workers en De cronjobs worden samen beschreven om het onderhoud te vergemakkelijken:

12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
——/ .platform.app.yaml+ + + b / .platform.app.yaml@@ -61,6 +61,14 @@ crons: spec: '50 23 * * *' cmd: if ["$PLATFORM_ENVIRONMENT_TYPE" = "production"];然后croncape php-security-checker;fi+ comment_cleanup:+ #每天晚上11点50分(UTC)清理。+规格:'50 23 * * *'+ cmd: |+ if ["$PLATFORM_ENVIRONMENT_TYPE" = "production"];然后+ croncape ob娱乐下载symfony控制台应用程序:评论:清理+ fi+工人:信使:命令:

cron秘密是绝对的。Elke cron word uitgevoerd volgens even规范模式。

HetcroncapeHulpprogramma monitort de uitvoering van het command en stuurt een E-mail naar de address sen die zijn gedefinieerd in deMAILTOOmgevingsvariabele als het命令甚至在退出代码Dan0heeft。

配置德MAILTOomgevingsvariabele:

1
ob娱乐下载syob直播appmfony cloud:variable:create——sensitive=1——level=project -y——name=env:MAILTO——value=ops@example.com

Merk op dat在alle Platform.sh分支crons opgezet zijn。Als je niet wilt dat sommige crons op niet-productie omgevingen worden uitgevoerd,控制器dan dePLATFORM_ENVIRONMENT_TYPE美元omgevingsvariabele:

1 2 3
如果PLATFORM_ENVIRONMENT_TYPE“生产”];然后Croncape ob娱乐下载symfony应用:发票:发送fi

此工作,包括代码示例,是根据知识共享协议BY-NC-SA 4.0许可证。