Source of file ResqueQueue.php
Size: 2,172 Bytes - Last Modified: 2021-12-23T10:29:15+00:00
/var/www/docs.ssmods.com/process/src/code/queuereport/ResqueQueue.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 | <?php class ResqueQueue extends ViewableData { /** * * @var array */ protected $record = array(); /** * * @param array $data */ public function __construct($data = array()) { $this->record = $data; } /** * * @return \FieldList */ public function getCMSFields() { $fieldList = new FieldList(); $fieldList->push(new ReadonlyField('Name', 'Name', $this->Name)); $fieldList->push(new ReadonlyField('Size', 'Size', $this->Size)); $jobs = new GridField('Jobs', 'Jobs', $this->getJobs()); $dataComponent = $jobs->getConfig()->getComponentByType('GridFieldDataColumns'); $dataComponent->setDisplayFields(array( 'Name' => 'Name', 'Value' => 'Value', )); $fieldList->push($jobs); return $fieldList; } /** * * @return string */ public function i18n_singular_name() { return 'Resque queue'; } protected function getJobs() { $jobs = new ArrayList(); $resqueJobs = Resque::redis()->lrange('queue:' . $this->Name, 0, -1); if(!$resqueJobs) { $jobs->push(new ResqueJob(array( 'Name' => 'null', 'Value' => 'null', ))); return $jobs; } foreach($resqueJobs as $idx => $job) { $stdClass = json_decode($job); if($stdClass->class === 'CapistranoDeploy' || $stdClass->class === 'DeployJob') { $jobs->push(new ResqueJob(array( 'Name' => $stdClass->class, 'Value' => $stdClass->args[0]->projectName . ':' . $stdClass->args[0]->environment . ' - ' . $stdClass->args[0]->sha, ))); } else { $jobs->push(new ResqueJob(array( 'Name' => $stdClass->class, 'Value' => var_export($stdClass->args[0], true), ))); } } return $jobs; } /** * * @return boolean */ public function canView() { return true; } /** * * @return bool */ public function canEdit() { return true; } /** * * @return bool */ public function candelete() { return false; } /** * * @return bool */ public function cancreate() { return false; } /** * * @param string $property * @return mixed */ public function __get($property) { if(isset($this->record[$property])) { return $this->record[$property]; } return null; } } |