Привет, я установил и настроил Gearman. До сих пор было здорово опробовать примеры, и когда я пришел к той части, где я на самом деле собираюсь использовать ее в своем проекте, именно здесь началась моя проблема.
Я использую Yii php framework в своем проекте, и я включил все мои рабочие файлы в основную директорию проекта.
ProjectName/workers/worker.php
Моя рабочая функция состоит в том, чтобы вставлять значения в базу данных с заданным параметром. Поэтому мне пришлось включить SQL-запрос, и так как я использую Yii, я использую:
Yii::app()->db->createCommand($sql)->execute();
и я сталкиваюсь с ошибкой:
PHP Fatal error: Class 'Yii' not found in /home/user/lappstack-5.4.34-0/apache2/htdocs/ProjectName/workers/worker.php on line 52
Кажется, что мой CLI PHP не может найти Yii, поэтому я попытался сделать это в старой школе, используя PDO:
$db = new PDO('pgsql:db...........'usr','pas');
$stmt = $dbh->prepare($sql);
$stmt->execute();
и я получаю ошибку:
PHP Fatal error: Uncaught exception 'PDOException' with message 'could not find driver' in /home/user/lappstack-5.4.34-0/apache2/htdocs/ProjectName/workers/worker.php:54
Таким образом, кажется, что рабочий в основном не имеет серверной среды в отличие от моего веб-приложения, которое может получать доступ к функциям Yii, а что нет. Как решить это?
Как вы порождаете своих рабочих? Чтобы использовать Yii, ваши работники должны быть созданы с помощью такой команды:
/ home / sites / projectName / php yiic имя-команды
Пожалуйста, прочитайте документацию по созданию команд, она хорошо написана:
http://www.yiiframework.com/doc/guide/1.1/en/topics.console
Других решений пока нет …