我正在使用beanstalkd对作业进行排队。
我在app/Lib/Queue/Beanstalk/workers/DownloadFileWorker.php
中编写了一个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相关的类。
在控制台/命令下编写为Shell。
问题解决了!