承接 geonative/garbage-collector 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

geonative/garbage-collector

最新稳定版本:0.3

Composer 安装命令:

composer require geonative/garbage-collector

包简介

Doctrine Entities garbage collector

README 文档

README

This package is a Symfony Bundle providing a "garbage collector" command to prune Doctrine entities that you consider stale.

Installation

PHP 8.2 or above is required.

composer require geonative/garbage-collector

Configuration

  1. Add the bundle into your config/bundles.php (likely to be done automatically with Symfony Flex).

  2. Update your configuration:

# config/packages/doctrine.yaml
doctrine:
  orm:
    mappings:
      GarbageCollectorBundle: ~
# config/services.yaml
services:
    _instanceof:
        GeoNative\GarbageCollector\PrunableRepositoryInterface:
            tags: [!php/const GeoNative\GarbageCollector\Services\GarbageCollector::PRUNABLE_REPOSITORY]
  1. Update your database schema:
php bin/console doctrine:schema:update --dump-sql --force
  1. Implement GeoNative\GarbageCollector\PrunableRepositoryInterface on your repositories:
    1. getGarbageCollectorCheckInterval() should return the minimum interval between checks, to avoid ruining your DB performances
    2. pruneStaleEntities() should actually perform removals and return the number of entities which have been removed.

If your entities should be pruned against a DateTime column, you can use GeoNative\GarbageCollector\PruneStaleEntitiesTrait to get started faster.

Usage

Oneshot

php bin/console gc:entities:prune

You can store this in a crontab to periodically cleanup your entities.

Daemonize

This command can also run in a loop and be daemonized with supervisord or systemctl.

The react/event-loop package is required.

php bin/console gc:entities:prune --loop=5

The Garbage Collector will pass every 5 seconds.

Lock

If your application runs on multiple hosts, you may want to prevent several instances of the Garbage Collector from running simultaneously. To do so, just add a --lock option:

php bin/console gc:entities:prune --lock

Tests

vendor/bin/pest

License

MIT.

统计信息

  • 总下载量: 13.89k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 2
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2021-12-08