PHPackages                             graycore/magento2-cron-group-relocation - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. graycore/magento2-cron-group-relocation

ActiveMagento2-module

graycore/magento2-cron-group-relocation
=======================================

A Magento 2 module that moves cron jobs into a different cron group than the one their declaring module put them in

v0.1.1(yesterday)08MITPHPPHP &gt;=8.1CI passing

Since Aug 16Pushed yesterdayCompare

[ Source](https://github.com/graycoreio/magento2-cron-group-relocation)[ Packagist](https://packagist.org/packages/graycore/magento2-cron-group-relocation)[ GitHub Sponsors](https://github.com/graycoreio)[ RSS](/packages/graycore-magento2-cron-group-relocation/feed)WikiDiscussions main Synced today

READMEChangelog (1)Dependencies (6)Versions (2)Used By (0)

Magento 2 Cron Group Relocation
===============================

[](#magento-2-cron-group-relocation)

Magento Version Support
-----------------------

[](#magento-version-support)

[![Magento v2.3 Supported](https://camo.githubusercontent.com/87cbb26d829fc5eba104e9ab7b0e41086947b7469962c909de8b3f953172ac67/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4d6167656e746f2d322e332d627269676874677265656e2e7376673f6c6162656c436f6c6f723d326632623266266c6f676f3d6d6167656e746f266c6f676f436f6c6f723d66323637323426636f6c6f723d343634323436266c6f6e6743616368653d74727565267374796c653d666c6174)](https://camo.githubusercontent.com/87cbb26d829fc5eba104e9ab7b0e41086947b7469962c909de8b3f953172ac67/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4d6167656e746f2d322e332d627269676874677265656e2e7376673f6c6162656c436f6c6f723d326632623266266c6f676f3d6d6167656e746f266c6f676f436f6c6f723d66323637323426636f6c6f723d343634323436266c6f6e6743616368653d74727565267374796c653d666c6174)[![Magento v2.4 Supported](https://camo.githubusercontent.com/7306d94da407bf4898f770b04a6a7c97fe2ca81141cf9a821b109b3d731f915a/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4d6167656e746f2d322e342d627269676874677265656e2e7376673f6c6162656c436f6c6f723d326632623266266c6f676f3d6d6167656e746f266c6f676f436f6c6f723d66323637323426636f6c6f723d343634323436266c6f6e6743616368653d74727565267374796c653d666c6174)](https://camo.githubusercontent.com/7306d94da407bf4898f770b04a6a7c97fe2ca81141cf9a821b109b3d731f915a/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4d6167656e746f2d322e342d627269676874677265656e2e7376673f6c6162656c436f6c6f723d326632623266266c6f676f3d6d6167656e746f266c6f676f436f6c6f723d66323637323426636f6c6f723d343634323436266c6f6e6743616368653d74727565267374796c653d666c6174)

Ever have one slow cron job in the `default` group hold up every other job in that group, and try to move it somewhere else?

```

        0 0 * * *

```

Then find it running **twice** a night — once in `reports`, and still once in `default`.

This package moves a cron job into a different group than the one its declaring module put it in, without running it twice.

Purpose
-------

[](#purpose)

`crontab.xml` is additive. `Magento\Cron\Model\Config\Converter\Xml` keys its output `[groupId][jobCode]` and the DOM merge identifies `/config/group/job` by group id plus job name, so redeclaring an existing job code under a second group leaves it registered in both. There is no XML construct that removes a job from a group.

That makes a vendor module's group choice effectively final — even though group choice is what controls which jobs share a lock, a process, and a schedule look-ahead window. A single slow job in `default` can consume the window in which another job's schedule row had to be generated, and Magento only ever schedules forward, so that job is neither run nor marked `missed`. It silently does not exist for that cycle.

This package lets you put such a job in its own group, so its runtime is somebody else's problem.

Getting Started
---------------

[](#getting-started)

This module is intended to be installed with [composer](https://getcomposer.org/). From the root of your Magento 2 project:

1. Download the package

```
composer require graycore/magento2-cron-group-relocation
```

2. Enable the package

```
./bin/magento module:enable Graycore_CronGroupRelocation
```

3. Declare a destination group in your own module's `etc/cron_groups.xml`

```

        60
        180
        0

```

4. Map jobs into it from your own module's `etc/di.xml`

```

            reports
            reports

```

5. Sequence your module after this one in `etc/module.xml`, so your arguments merge on top

```

```

6. Flush the config cache

```
./bin/magento cache:flush config
```

Features
--------

[](#features)

- Moves any cron job to any group, keyed by job code — no need to know which module declared it
- Never runs a job twice, unlike redeclaring it in `crontab.xml`
- Preserves the job's schedule, instance, method and `config_path` exactly as merged
- Preserves `core_config_data` schedule overrides — it intercepts *downstream* of `Magento\Cron\Model\Config\Reader\Db`, so the schedule actually in effect travels with the job
- Creates no group for a job that doesn't exist, so a disabled declaring module can't leave an empty group behind to be locked and schedule-generated against
- Idempotent, and a no-op when nothing is configured
- No database tables, no admin config, no cron jobs of its own

Upgrading
---------

[](#upgrading)

- [Semver Policy](https://semver.org/)

###  Health Score

36

—

LowBetter than 79% of packages

Maintenance100

Actively maintained with recent releases

Popularity0

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity32

Early-stage or recently created project

 Bus Factor1

Top contributor holds 80% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

1d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/cede4d8ff3624bd4e509cebd8a3da9abada797eb8e0737c6db26097fce82e67e?d=identicon)[damienwebdev](/maintainers/damienwebdev)

---

Top Contributors

[![damienwebdev](https://avatars.githubusercontent.com/u/9029654?v=4)](https://github.com/damienwebdev "damienwebdev (4 commits)")[![gray-bot](https://avatars.githubusercontent.com/u/120588553?v=4)](https://github.com/gray-bot "gray-bot (1 commits)")

###  Code Quality

TestsPHPUnit

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/graycore-magento2-cron-group-relocation/health.svg)

```
[![Health](https://phpackages.com/badges/graycore-magento2-cron-group-relocation/health.svg)](https://phpackages.com/packages/graycore-magento2-cron-group-relocation)
```

###  Alternatives

[run-as-root/magento2-prometheus-exporter

Magento2 Prometheus Exporter

69362.0k](/packages/run-as-root-magento2-prometheus-exporter)[fastly/magento2

Fastly CDN Module for Magento 2.4.x

1564.5M1](/packages/fastly-magento2)[dotdigital/dotdigital-magento2-extension

Dotdigital for Magento 2

50406.2k23](/packages/dotdigital-dotdigital-magento2-extension)[myparcelnl/magento

A Magento 2 module that creates MyParcel labels

1861.2k](/packages/myparcelnl-magento)[mage-os/module-automatic-translation

Automatic AI content translation for Mage-OS.

3223.7k](/packages/mage-os-module-automatic-translation)[loki/magento2-components

Core module for defining Alpine.js components with advanced AJAX features

1015.1k29](/packages/loki-magento2-components)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
