Я использую храповик php, чтобы каждую секунду проверять изменения, внесенные в таблицу БД.
Но изменения () ничего не возвращает, хотя я редактирую документ. Что я здесь не так делаю?
Я ссылался на этот пост: rethinkdb PHP-RQL изменения
Вот как я запрашиваю изменения в RethinkDB
function fetchProduct() {
$products = r\table("tableOne")->changes()->run($conn);
foreach ($products as $product) {
$p[] = $product;
}
return $p;
}
Вот как я проверяю изменения через Rachet каждую секунду:
$count = 0;
loopy($server, $count);
function loopy($server, $count) {
$server->loop->addPeriodicTimer(1,
function ($timer) use ( &$server, &$count) {
$count++;
echo $count."\n";
//test starts
$product = fetchProduct();
echo "<pre>";
var_dump($product);
//test ends
});
}
Но данные не возвращаются, даже когда документ редактируется. Также он останавливает выполнение цикла в Ratchet. Если бы я удалил changes()
тогда он будет возвращать все документы в таблице каждую секунду, поскольку цикл Ratchet выполняется. Но я хочу, чтобы данные возвращались только после внесения изменений. КАК мне этого достичь?
Я просто изменил итерацию на это, и это сработало:
foreach ($products as $product) {
print_r($product);
}
Других решений пока нет …