Случайно отправлять данные другому процессу kdb - PullRequest
0 голосов
/ 20 марта 2020

У меня запущено 3 q процесса

  1. RDB
  2. Разбор с RDB и отправка соответствующих данных в 3-й процесс
  3. Прием данных

Ограничения:

  • Процесс 3 может принимать только 500 строк данных каждый день
  • Необходимо убедиться, что эти 500 строк данных также отправлены на этот процесс случайным образом в течение одного дня

Я хочу написать функцию, которая находится в процессе 2 и вызывается каждые 5se c (\t 5000), эта функция извлекает данные из Затем RDB случайным образом отправляет данные в процесс-3 в течение дня, следя за тем, чтобы не нарушить ограничение в 500 строк данных в течение одного дня. Как только я отправил 500, .z.ts не получит никаких данных из процесса 1 и не отправит их в процесс 3. Промывайте и повторяйте каждый день.

h1: hopen `::9090;   /connect to process 1
h3: hopen `::9091;   /connect to process 3

fetchfunc{[]
 data:: h1"select[500] from table1";   / 500 data constraint
 flag::1;
};

sendfunc{[]
 while[flag=1; 
  h3(insert, `tab2;data[counter]);    / tab2 table on process 3 (HOW TO INSERT RANDOMLY!) 
  counter: counter+1;
  if[counter=500; flag::0]; 
  ];
};


.z.ts{[]
 $[flag=0; fetchfun[]; sendfun[]];
};

...