webcodebg / magento2-cron-scheduler
Easily set up and manage cron jobs from the backend with a beautiful and managed timeline feature. Find the actual load on CPU/Memory by cron job execution.
Package info
github.com/webcodebg/magento2-cron-scheduler
Language:JavaScript
Type:magento2-module
pkg:composer/webcodebg/magento2-cron-scheduler
Requires
- php: ^8.3
- magento/framework: >=103.0.4
- magento/module-backend: >=100.0.0
- magento/module-cron: >=100.0.0
Requires (Dev)
None
Suggests
None
Provides
None
Conflicts
None
Replaces
- kiwicommerce/module-cron-scheduler: *
- webcode/module-cron-scheduler: *
README
- Easily set up cron jobs
- Manage cron jobs from the backend
- Have an organised and easily managed timeline feature
- See the longest running cron job
- Receive an email notification if any cron job produces a fatal error
- View the actual load on CPU/memory by cron job execution
- Automatically stop long running jobs, with a limit per job
Requirements
- PHP 8.3 or newer
- Magento 2.4.4 or newer (
magento/framework>= 103.0.4)
For older Magento / PHP versions use the 1.x line: composer require webcodebg/magento2-cron-scheduler:^1.0.
Release Notes
- v 2.1.x
- The kill threshold for long running jobs is set per job instead of a fixed 3 hours (see Long running jobs).
- A non-numeric per-job limit removes the override instead of being saved as
0("never kill"). - Rows without a pid are never killed.
cron:run --exclude-groupis honoured.- The Error's message is kept in
cron_schedule.messages. isXmlHttpRequest()guard in the Validation controllers.
- v 2.0.0 - Breaking: the module is renamed from
KiwiCommerce_CronSchedulertoWebcode_CronScheduler(PHP namespaceWebcode\CronScheduler). Declarative schema (etc/db_schema.xml) instead of setup scripts, helpers moved toService\*, timeline overhaul, "Regenerate schedules" and "Clear past logs" actions, escaped template output, PHP 8.3+ / Magento 2.4.4+. - v 1.0.9 - Fix issue with Invalid theme kiwicommerce#25
Upgrading from 1.x (KiwiCommerce_CronScheduler)
The module name, the PHP namespace and the ACL resource ids changed with 2.0.0.
- Custom code that references
KiwiCommerce\CronScheduler\...classes must be updated toWebcode\CronScheduler\.... - Admin roles must be granted the new
Webcode_CronScheduler::*resources again (System > Permissions > User Roles). - Configuration under
cronscheduler/*and the extracron_schedulecolumns are kept.
Fork
- Oct. 2020 - KiwiCommerce stopped maintaining this extension. Webcode continues its development.
Installation
-
Composer Installation
- Navigate to your Magento root folder
cd path_to_the_magento_root_directory - Then run the following command
composer require webcodebg/magento2-cron-scheduler - Make sure that composer finished the installation without errors
- Navigate to your Magento root folder
-
Manual Installation
- Backup your web directory and database.
- Copy the contents of this repository to
app/code/Webcode/CronScheduler - Then run the following command
php bin/magento module:enable Webcode_CronScheduler
- After install the extension, run the following command
php bin/magento setup:upgrade
php bin/magento setup:di:compile
php bin/magento setup:static-content:deploy
php bin/magento cache:flush
- Log out from the backend and login again.
Features
Cron Jobs
You will have a list of all cron jobs with their groups, cron expression, job code and other useful information.
Cron Job Schedule list
You will have a list of scheduled jobs with their respective status.
Add New Cron Job
You can create a new cron job by clicking on Add New Cron Job. You need to add different valid information while creating it.
Timeline
You will have a beautiful timeline for each cron job.
Configuration
You need to follow this path. Stores > Configuration > WEBCODE > Cron Scheduler
Long running jobs
Every 15 minutes the module kills (SIGKILL) each job in status running that started longer ago than its limit.
The limit is resolved per job, in minutes:
cronscheduler/max_runtime/<job_code>cronscheduler/general/max_runtime(Stores > Configuration, default180)180
0 means the job is never killed. A per-job limit can be set from the job form (Max Runtime), with
bin/magento config:set cronscheduler/max_runtime/<job_code> <minutes>, or in the config.xml of the module that owns the job:
<default><cronscheduler><max_runtime><job_code>240</job_code></max_runtime></cronscheduler></default>
Dashboard
You can analyze the actual time taken by each job on magento dashboard.
License
Open Software License 3.0 (OSL-3.0)
Contribution
Well unfortunately there is no formal way to contribute, we would encourage you to feel free and contribute by:
- Creating bug reports, issues or feature requests on Github
- Submitting pull requests for improvements.