Выполнение зада ани и к cron

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')

提示

ДляболеесложныхзапросовиногдаполезнопосмотретьсгенерированныеSQL -запросы(которыеможнонайтивлогахивпрофилировщикевеб——запросов)。

应用:评论:清理вфайлеsrc /命令/ CommentCleanupCommand.php

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使用欧宝娱乐app下载地址组件控制台属性AsCommand使用欧宝娱乐app下载地址组件控制台命令命令使用欧宝娱乐app下载地址组件控制台输入InputInterface使用欧宝娱乐app下载地址组件控制台输入InputOption使用欧宝娱乐app下载地址组件控制台输出OutputInterface使用欧宝娱乐app下载地址组件控制台风格欧宝娱乐app下载地址SymfonyStyle#[AsCommand('app:comment:cleanup', '从数据库中删除拒绝和垃圾评论')]CommentCleanupCommand扩展命令公共函数__construct(私人CommentRepositorycommentRepository, )::__construct ();}受保护的函数配置()->使用addOption (“管制”, InputOption::VALUE_NONE,“演习”);}受保护的函数执行(InputInterface输入, OutputInterface输出intio欧宝娱乐app下载地址SymfonyStyle (输入输出);如果输入->getOption (“管制”)) {io->注意(“启用干模式”);->commentRepository->countOldRejected ();}其他的->commentRepository->deleteOldRejected ();}io->成功(sprintf (删除“%d”旧的被拒绝/垃圾评论));返回命令::成功;}}

ВсекомандыприложениярегистрируютсявместесовстроеннымикомандамиSymfony,欧宝娱乐app下载地址ивсеонидоступнычерез欧宝娱乐app下载地址symfony控制台.Посколькуколичестводоступныхкомандможетбытьбольшим,необходимогруппироватьихпопространствамимён。Посоглашениюкомандыприложениядолжныхранитьсявпространстве应用程序.Можнодобавлятьлюбоеколичествоподпространств,разделяяихдвоеточием().

Командапринимает输入(аргументыипараметры,переданныекоманде),атакже输出,которыйвыможетеиспользоватьдлявыводаданныхвконсоль。

Очистите базу у данн, выполнив команду:

1
欧宝娱乐app下载地址Symfony控制台应用:注释:清理

.platform.app.yaml.Веб-контейнер,воркерыиcron -заданиядляпростотыадминистрированияописаныводномместе:

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 欧宝娱乐app下载地址symfony控制台应用程序:评论:清理+ fi+工人:信使:命令:

Разделcronопис с с а ае ис а а ани cron。Каждоезаданиевыполняетсявсоответствиисрасписанием,указаннымвсвойстве规范

Утилитаcroncapeследитзавыполнениемзаданияипосылаетэлектронноеписьмонаадреса,указанныевпеременнойокруженияMAILTO,есликомандавозвращаеткодзавершения,отличныйот0

Настройте перем менн н в окруженияMAILTO

1
欧宝娱乐app下欧宝体育应用最新版app下载载地址symfony cloud:variable:create——sensitive=1——level=project -y——name=env:MAILTO——value=ops@example.com

Обратитевнимание,чтозаданиядляcronнастроеныдлявсехветокPlatform.sh。Есливынехотитезапускатькакие——тозаданиявнепродакшена,проверьтепеременнуюокруженияPLATFORM_ENVIRONMENT_TYPE美元

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

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