Skip to content

Instantly share code, notes, and snippets.

@samplenull
Forked from werdan/Magento cron lister
Last active December 23, 2015 08:49
Show Gist options
  • Save samplenull/6610228 to your computer and use it in GitHub Desktop.
Save samplenull/6610228 to your computer and use it in GitHub Desktop.
Magento cron lister
<?php
// shell/listAllCron.php
require_once 'abstract.php';
class Mage_Shell_CronLister extends Mage_Shell_Abstract
{
public function run()
{f
$cronJobs = Mage::app()->getConfig()->getNode('crontab/jobs');
$outputFormat = "%-60s %-20s %-50s";
printf($outputFormat . "\n", "Job name", "m h dom mon dow", "Object::Method to execute");
$lines = "Job name, m h dom mon dow, Object::Method to execute";
foreach($cronJobs->children() as $key => $job) {
$expr = trim((string) $job->schedule->cron_expr);
$datas[$key] = sprintf($outputFormat, trim($job->getName()), $expr, trim((string) $job->run->model));
$datas_csv[$key] = array(trim($job->getName()), $expr, trim((string) $job->run->model));
}
uksort($datas, array($this, 'compareTimes'));
foreach($datas as $job) {
echo $job . "\n";
}
}
public function compareTimes($time1, $time2)
{
$times1 = explode(' ', $time1);
$times2 = explode(' ', $time2);
if(( ! isset($times1[1])) || ($times1[1] == '*')) return -1;
if(( ! isset($times2[1])) || ($times2[1] == '*')) return 1;
$times1[1] = (int) trim($times1[1]);
$times2[1] = (int) trim($times2[1]);
$times1[0] = (int) trim($times1[0]);
$times2[0] = (int) trim($times2[0]);
if($times1[1] != $times2[1]) {
$res = ($times1[1] - $times2[1]) * 1000;
return $res;
}
return $times1[0] - $times2[0];
}
}
$cronLister = new mage_Shell_CronLister();
$cronLister->run();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment