Отдельный скрипт php, который выполняет задания из очереди beanstalkd. Требуется доступ к приложению CakePHP

Я использую beanstalkd для очереди заданий.

У меня есть PHP-скрипт, написанный внутри моего app/Lib/Queue/Beanstalk/workers/DownloadFileWorker.php

<?php
require_once(dirname(__DIR__) . DIRECTORY_SEPARATOR . 'config.php');
class DownloadS3FilesWorker extends PHPQueue\Worker
{
/**
 * @var \PHPQueue\Backend\FS
 */
    static private $dataSource;
    public $factory = null;
    private $queueConfig = array();
    private $queueBackend = 'Beanstalkd';

    public function __construct()
    {
        parent::__construct();
        $this->queueConfig  = EPubConfig::getConfig($this->queueBackend);
        self::$dataSource = \PHPQueue\Base::backendFactory($this->queueBackend, $this->queueConfig);
    }

    /**
     * @param \PHPQueue\Job $jobObject
     */
    public function runJob($jobObject)
    {
        parent::runJob($jobObject);
        $jobData = $jobObject->data;
        App::uses('FileFactory', 'Lib/File');
        $this->factory = new FileFactory($jobData); 
        $this->factory->downloadAllFiles();
        $this->result_data = $jobData;
    }
}

Я получаю следующую ошибку.

PHP Fatal error:  Class 'App' not found in /var/virtual/someapp/Lib/Queue/Beanstalk/workers/DownloadFileWorker.php on line 27

FileFactory Сам будет использовать много других классов, связанных с Cake.

1 ответ

Решение

Написал как Shell под Консоль / Команда.

Задача решена!

Другие вопросы по тегам