mickgeek
да ошибка исчезла, типа процесс запущен.
Читал эту статью как раз вот не понял парочку моментов именно по ней. Скорее всего по тому, что никогда с подобными вещами ранее дел не имел. Разбираюсь по пару минут в день, так как завален своим проектом.
Вот честно я включу дурака, но еще раз переспрошу. Тоесть:
Вначале нам нужен воркер, который следит что там как:
Тут есть пример такого воркера.
Код: Выделить всё
<?php
$worker = new GearmanWorker();
$worker->addServer('192.168.68.4');
/*Тут мы говорим, что готовы обработать ф-ю function_revert_string_and_caps, и что заниматься этим будет ф-я 'revCaps*/
$worker->addFunction('function_revert_string_and_caps', 'revCaps');
/*Запускаем воркер. В таком варианте он отработает один раз*/
$worker->work();
/*А это вариант будет висеть демоном - есть на видео*/
//while($worker->work()){};
//Ну и сама ф-я обработчик, аргумент один - объект-задание job
function revCaps($job){
/*Извлекаем из job данные, переданные клиентом*/
$content = $job->workload();
return mb_strtoupper(strrev($content));
}
1)
Тоесть воркер у нас весит демоном в фоне и выполняет какую-либо функцию, в данном случае revCaps?
2)
Вот это я так понял именно функция, которую и будет обслуживать воркер ? (как в примере: revCaps)
Код: Выделить всё
namespace common\jobs;
use filsh\yii2\gearman\JobBase;
class SyncCalendar extends JobBase
{
public function execute(\GearmanJob $job = null)
{
// Do something
}
}
3) Как я понял, чтобы добавить задание в очередь в фон, мне нужно использовать вот этот код ?
Код: Выделить всё
Yii::$app->gearman->getDispatcher()->background('syncCalendar', new JobWorkload([
'params' => [
'data' => 'value'
]
])); // run in background
4) Тоесть к примеру я запускаю задачу, то она летит в функцию SyncCalendar->execute() ?
5) И ключевой вопрос, где мой воркер ? При использовании расширения к Yii2? Тоесть сейчас я успешно запустил процесс командой:
yii gearman/start --fork=true
И в воркерах я вижу вот это:
6) Но в фон ничего такого как в статье описано я не ставил. Тоесть за меня это все сделал Yii2?
7)
1. Разница в удобстве.
Есть еще какае-то разница? тоесть использовать именно расширение под Yii2 или общее расширение ?
anton44eg
А подскажите пожалуйста почему ?
За ранее огромное спасибо за ответы.