написание логики для обработчика .z.pg в q - PullRequest
0 голосов
/ 11 февраля 2019

Мне нравится писать логику для .z.pg, поэтому, когда удаленный клиент входит в систему через порт, моя таблица заполняется определенной информацией:

.ipc.history:enlist`time`handle`user`query`result!(0Np;0Ni;`;::;::)

, поэтому я пишу следующую логику:

.z.pg:{[x] r:value x;`.ipc.history insert (.z.p;.z.w;.z.u;value x;r);r}

на основе:

     .z.pg:{[x]0N!(`zpg;x);value x  }

Я предполагаю, что x является запросом типа "1 + 1".

, поэтому, когда я слушаю порт:

q queryHistory1.q -p 5000

и клиент выполняет некоторый запрос (r) на handle:hopen 5000;моя таблица .ipc.history заполняется полями, которые она содержит.

Хотя я не получаю сообщение об ошибке, моя таблица пуста.

1 Ответ

0 голосов
/ 11 февраля 2019

В моем собственном тестировании то, что у вас, похоже, работает как положено.Изначально, не изменяя ваш код, после выполнения запроса моя таблица заполнилась следующим: h "1 + 1" на стороне клиента

time                          handle  user             query         result
--------------------------------------------------------------------------
                                                       ::            ::
2019.02.11D17:22:04.976012000 560    Liam McGrenaghan  2             2

Запрашиваете ли вы синхронно с положительным дескриптором или асинхронно с отрицательным дескриптором?.z.pg работает для первого, тогда как .z.ps работает для второго. Также есть более полезная информация об использовании .z функций для мониторинга по следующей ссылке.https://code.kx.com/q/cookbook/using-dotz/.

Кроме того, вы, вероятно, хотите отобразить сам необработанный запрос в таблице, а не то, к чему обращается запрос, если это так, просто используйте.

.z.pg:{[x] r:value x;`.ipc.history insert (.z.p;.z.w;.z.u;x;r);r}

Где х заменил значение х.Затем возвращается таблица, которая, вероятно, больше того, что вы ищете.

time                          handle user             query         result
-------------------------------------------------------------------------

2019.02.11D17:24:25.008643000 560    Liam McGrenaghan "1+1"         2
...