Замечания по реализации в QUIKе обработки заявок (и, наверное стоп-заявок).

Страницы: 1
RSS
Замечания по реализации в QUIKе обработки заявок (и, наверное стоп-заявок).
 
1.  trans_id известен  в момент подачи заявки, но в таблице orders поле trans_id  в записи заявки формируется с задержкой.
 Это приводит к тому, что при обращении к существующей записи таблицы orders  возможны случаи отсутствие значения  trans_id.
 Не видно никаких проблем в том чтобы поле trans_id  формировалось в момент создания записи в таблице orders. Почему так не сделано?

2. Бывали случаи (сразу после снятия заявки), когда при чтении существующей записи: order = getItem_wait('orders', Индекс_существующей_записи) значение order равно nil. "Костыль" на такие ситуации следующий:
Код
local function getItem_wait(tbl_quik, ind)
   local ob = getItem(tbl_quik, ind)
   local N = 500
   while not ob do
      sleep(10)
      ob = getItem(tbl_quik, ind)
      N = N - 1
      if N <= 0 then error ('Не дождались результата чтения таблицы ' .. tbl_quik .. ' по индексу ' .. tostring(ind)) end
   end
   return ob
end

  Предлагается тело функции getItem_wait в каком то виде реализовать в штатной функции getItem.
 
В доках не написано, но на сколько я понимаю, в SearchItems синхронизирован доступ к таблицам из разных потоков, в отличие от остальных функций доступа, поэтому может быть такой эффект от getItem
 
Возможно,  причина в том, что запись в таблицу заявок производится после выхода из колбека. Поэтому, если обратится к таблице  заявок в колбеке, то там будут старые данные. Т е при снятии заявки в таблице заявка будет еще активной, а в колбеке - пассивной.
 
Цитата
nikolz написал:
Возможно,  причина в том, что запись в таблицу заявок производится после выхода из колбек
    Причина мне не интересна. Я написал как сделать так, чтобы у пользователей было меньше вопросов.
Страницы: 1
Читают тему
Наверх