0
Я использую beanstalkd для работы в очереди.Отдельный скрипт php, который выполняет задания из очереди beanstalkd. Нужен доступ к приложению cakephp
У меня есть 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.
В последнее время я видел много людей, которые действительно прыгают на RabbitMQ. Даже MarkStory, основной разработчик CakePHP, рассказывал об этом на 2011 CakeFest: https://github.com/markstory/cakefest-rabbitmq Возможно, там больше документации и поддержки сообщества. Просто мысль, и удачи! – alairock
спасибо @alairock Я посмотрю на это ближе. Просто быстрый вопрос, который вы пробовали раньше? –
@alairock, рассмотрев это http://www.quora.com/Beanstalk-work-queue/What-are-the-advantages-and-disadvantages-of-Beanstalkd-as-a-work-queue Я думаю, что соглашусь на beanstalk, так как я действительно использую workqueue, а не очередь сообщений –