Я использую пост метода контроллера напрямую для выполнения некоторых операций с БД и социальными сетями, но я нахожу несколько точек сбоя между ним и оборудованием & mdash; поэтому мне пришла в голову идея сохранить все запросы в таблице базы данных для использования в качестве системы очередей, чтобы я мог обрабатывать их в свое время, а не в реальном времени
То, с чем я сейчас борюсь, это обработка моих запросов. Я знаю, что это не очень MVC & mdash; но это быстро исправить.
Как мне вызвать метод другого контроллера из моего метода очереди процессов? Я попытался включить файл и создать его экземпляр & mdash; затем передав ему переменные, которые я бы сделал из Интернета.
function process(){
$result = $this->mque->get_all();
include('post.php');
$get = new post();
foreach($result->result_array() as $item){
$get->index($item['rfid'],$item['station_id'],$item['item']);
}
}
но я получаю ошибку - когда я вызываю метод обычного индекса - он работает нормально, но я получаю неопределенную ошибку метода, когда вызываю его через экземплярный метод класса - (это моя проблема)
Message: Undefined property: post::$db
Почему
Я устанавливаю метод очереди процессов для запуска на основе задания cron, выполняемого с заданным интервалом времени.
Изначально все работало с индексным методом post & mdash; но так как post::index()
может занять 10-15 секунд, а считыватель не является многопоточным & mdash; кто-то может использовать ридер в течение 7 секунд, и скрипт не будет работать полностью.
Есть ли лучший способ сделать это, чем использовать мой текущий метод процесса?
обновление
есть два способа сделать это - либо использовать php, чтобы открыть / получить из Интернета
или делайте это спрограммированием, используя $ class-> method () - я бы предпочел сделать это первым методом, но на самом деле не вижу никакой опции с ошибкой, о которой я упоминал ранее