rethinkdb PHP-RQL изменения

я использую PHP-RQL библиотека для работы с RethinkDB,
Мне нужно получить изменения, когда новые данные вставлены.
но я получаю PHP фатальную ошибку: Uncaught RqlDriverError:
Параметры должны быть массивом.

в документации API это говорит:

table->changes(array('squash' => true, 'include_states' => false)) → stream
singleSelection->changes(array('squash' => true, 'include_states' => false)) → stream
Return an infinite stream of objects representing changes to a query.

Пример: подписаться на изменения в таблице.

r\table('games')->changes()->run($conn, function($err, $cursor) {
$cursor->each($console->$log)
})

Как подписаться на изменения на столе? Этот пример не работает.

0

Решение

В настоящий момент PHP-RQL полностью синхронен, поэтому вы не можете дать ему обратный вызов.
Вместо этого вы получите курсор, который вы можете перебрать:

$cursor = r\table('games')->changes()->run($conn);
foreach ($update in $cursor) {
printr($update);
})

Что вы используете для параллелизма? Используете ли вы какой-либо асинхронный каркас (React PHP) или многопоточность или что-то подобное?

В настоящий момент нет встроенной интеграции в React с PHP-RQL, хотя, если вы используете версию PHP с поддержкой потоков, вы можете создать поток, открыть отдельное соединение внутри потока и использовать интерфейс синхронного курсора изнутри.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]