Seditio Source
Root |
./othercms/xenForo 2.2.8/src/XF/Job/EmailUnsubscribe.php
<?php

namespace XF\Job;

class
EmailUnsubscribe extends AbstractJob
{
    protected
$defaultData = [
       
'start' => null
   
];

    public function
run($maxRunTime)
    {
        if (!
$this->data['start'])
        {
           
$this->data['start'] = time();
        }

       
$unsubContainer = \XF::app()->unsubscribe();

       
$storage = $unsubContainer->storage();
        if (!
$storage)
        {
            return
$this->complete();
        }

       
$processor = $unsubContainer->processor();
       
$finished = $processor->processFromStorage($storage, $maxRunTime);

       
$storage->close();

        if (
$finished)
        {
            return
$this->complete();
        }

        if (
time() - $this->data['start'] > 60 * 30)
        {
           
// don't let a single run of this run for more than 30 minutes
           
return $this->complete();
        }

        return
$this->resume();
    }

    public function
getStatusMessage()
    {
        return \
XF::phrase('processing_email_unsubscribe_requests...');
    }

    public function
canCancel()
    {
        return
false;
    }

    public function
canTriggerByChoice()
    {
        return
false;
    }
}