Skip to content
Snippets Groups Projects
class.cron.php 1.5 KiB
Newer Older
  • Learn to ignore specific revisions
  • Jared Hancock's avatar
    Jared Hancock committed
    <?php
    /*********************************************************************
        class.cron.php
    
        Nothing special...just a central location for all cron calls.
        
        Peter Rotich <peter@osticket.com>
    
        Copyright (c)  2006-2013 osTicket
    
    Jared Hancock's avatar
    Jared Hancock committed
        http://www.osticket.com
    
        Released under the GNU General Public License WITHOUT ANY WARRANTY.
        See LICENSE.TXT for details.
    
        TODO: The plan is to make cron jobs db based.
        
        vim: expandtab sw=4 ts=4 sts=4:
    **********************************************************************/
    //TODO: Make it DB based!
    class Cron {
    
        function MailFetcher() {
            require_once(INCLUDE_DIR.'class.mailfetch.php');
    
    Peter Rotich's avatar
    Peter Rotich committed
            MailFetcher::run(); //Fetch mail..frequency is limited by email account setting.
    
    Jared Hancock's avatar
    Jared Hancock committed
        }
    
        function TicketMonitor() {
            require_once(INCLUDE_DIR.'class.ticket.php');
            require_once(INCLUDE_DIR.'class.lock.php');
            Ticket::checkOverdue(); //Make stale tickets overdue
            TicketLock::cleanup(); //Remove expired locks 
        }
    
        function PurgeLogs() {
    
            global $ost;
            if($ost) $ost->purgeLogs();
    
        function CleanOrphanedFiles() {
            require_once(INCLUDE_DIR.'class.file.php');
            AttachmentFile::deleteOrphans();
        }
    
    
    Jared Hancock's avatar
    Jared Hancock committed
        function run(){ //called by outside cron NOT autocron
    
            global $ost;
            if (!$ost || $ost->isUpgradePending())
                return;
    
    
            self::MailFetcher();
            self::TicketMonitor();
            self::PurgeLogs();
            self::CleanOrphanedFiles();