Запросы API

paulwinex
Сообщения: 83
Зарегистрирован: Пт июл 14, 2017 9:50 am

Re: Запросы API

Сообщение paulwinex »

Первый прототип монитора, пока в гистах.
https://gist.github.com/paulwinex/4fafc ... f35cf01a2c
Пришлось немного расширить af.Cmd и, ясное дело, я пока не до конца понял что где и как, вполне мог написать ерунду)
К тому же стоит вынести преобразование данных вне класса Monitor чтобы осталась только CGRUшная начинка без частностей.
Аватара пользователя
Timur
Site Admin
Сообщения: 178
Зарегистрирован: Вс июл 09, 2017 4:59 pm
Откуда: Королёв
Контактная информация:

Re: Запросы API

Сообщение Timur »

Отлично!
af.Cmd если и расширять, то лучше прямо в af.py.
А так вообще он задумывался как низкоуровневое общение (команды).
А если что-то нужно только для монитора, и это не нужно делать в af.Cmd (или можно не делать), то я думаю что это стоит делать в классе монитора. Так и код будет в одном месте.
Тимур Хайрулин
CGRU 3.3.1 Ubuntu 22.04LTS, MS Windows 10 (clients only).
paulwinex
Сообщения: 83
Зарегистрирован: Пт июл 14, 2017 9:50 am

Re: Запросы API

Сообщение paulwinex »

af.Cmd если и расширять, то лучше прямо в af.py.
Ну конечно, когда что-то готовое будет.
А так вообще он задумывался как низкоуровневое общение (команды).
А если что-то нужно только для монитора, и это не нужно делать в af.Cmd (или можно не делать), то я думаю что это стоит делать в классе монитора. Так и код будет в одном месте.
А я думаю в af.Cmd можно добавить побольше удобных функций. Конечно, учитывая объем возможностей api, функций получится дофига, зато будет способ быстро что-то достать с сервера даже не зная как api устроен. Хотя ничто не мешает для этого организовать отдельный класс.

А что насчет этих вопросов?
viewtopic.php?f=20&t=277#p376
Аватара пользователя
Timur
Site Admin
Сообщения: 178
Зарегистрирован: Вс июл 09, 2017 4:59 pm
Откуда: Королёв
Контактная информация:

Re: Запросы API

Сообщение Timur »

Я бы тогда, наверное, af.Cmd вынес тоже в отдельный файл.
Чтобы в af только конструктор задачи для сабмитилок остался.
Тимур Хайрулин
CGRU 3.3.1 Ubuntu 22.04LTS, MS Windows 10 (clients only).
Аватара пользователя
Timur
Site Admin
Сообщения: 178
Зарегистрирован: Вс июл 09, 2017 4:59 pm
Откуда: Королёв
Контактная информация:

Re: Запросы API

Сообщение Timur »

"Те" вопросы: viewtopic.php?f=20&t=277#p376

Вопрос 1.
Мне тут не ясно только одно значение: st, и некоторое его состояние типа 4611686018427387906L. Что оно значит? Где почитать?
- На питоне\яваскрипте или просто человеку удобнее парсить стринговый "state". Серверу для хранения удобнее самому себе писать просто значение битовых флагов, и ничего парсить не надо, да и с битами он работает несравнимо быстрее, чем со строками. А протокол передачи по сети и записи на диск тот же.

Вопрос 2.
Учитывая что есть повторения id тасков могу предположить что сюда записаны все события таска с момента последнего запроса. И на самом деле актуальным будет только полседний (то есть последнее значение одинаковых id тасков с одинаковым id блока). Верно?
- Верно. Это баг.
Тимур Хайрулин
CGRU 3.3.1 Ubuntu 22.04LTS, MS Windows 10 (clients only).
paulwinex
Сообщения: 83
Зарегистрирован: Пт июл 14, 2017 9:50 am

Re: Запросы API

Сообщение paulwinex »

Серверу для хранения удобнее самому себе писать просто значение битовых флагов, и ничего парсить не надо
То есть это дубликат значения state и можно его проигнорить. Я так понимаю.
Верно. Это баг
Если это баг то как с ним справляется тот же web ui? Я сделал сортировку и учитываю только последнюю запись.
Кстати в некоторых случаях это вполне полезная инфа. Например для статистики. Там есть процент и отметка времени. Вполне сойдет для отслеживания динамики прогресса если опрос монитора на много реже чем 1 раз в сек и изменений приходит довольно много. Переименуем баг в фичу и спим спокойно)
paulwinex
Сообщения: 83
Зарегистрирован: Пт июл 14, 2017 9:50 am

Re: Запросы API

Сообщение paulwinex »

Timur писал(а): Ср дек 06, 2017 4:28 pm Чтобы в af только конструктор задачи для сабмитилок остался.
Я думаю что в af.Cmd можно было бы сделать основной функционал запроса и несколько функций по типам action. Остальные все более конкретные запросы вынести в отдельный класс в дугом файле, наследованный от этого. А файл для Cmd можно и не менять, вроде норм там смотрится. Вся основная апи af в одном файле.
Аватара пользователя
Timur
Site Admin
Сообщения: 178
Зарегистрирован: Вс июл 09, 2017 4:59 pm
Откуда: Королёв
Контактная информация:

Re: Запросы API

Сообщение Timur »

Тоже логично.
Тимур Хайрулин
CGRU 3.3.1 Ubuntu 22.04LTS, MS Windows 10 (clients only).
paulwinex
Сообщения: 83
Зарегистрирован: Пт июл 14, 2017 9:50 am

Re: Запросы API

Сообщение paulwinex »

Смущает тот факт что ID у джобы, который по определению должен быть уникальным, на самом деле повторяется. Если удалить джобу то следующая займет её место.
По какому тогда значению можно идентифицировать уникальную джобу? Чтобы это както компинсирвовать я в новые джобы пишу custom_data.
В частности, в эвент приходит именно этот ID и уже совсем не однозначная ситуация получается, потому что по этому ID я не могу найти джобу и, например, считать с нё чтото в custom_data чтобы чётко понять о какой идёт речь. Более того, к тому моменту может создасться новая джоба под этим ID и я подумаю что удалилась она.
Есть ли возможность ID сделать именно уникальным чтобы он не повторялся никогда до очистки базы? Может в конфиге что-то? Или както достать из архива удалённую джобу (хотя, их с таким ID будет полно, придётся сортировать по дате)
Аватара пользователя
Timur
Site Admin
Сообщения: 178
Зарегистрирован: Вс июл 09, 2017 4:59 pm
Откуда: Королёв
Контактная информация:

Re: Запросы API

Сообщение Timur »

И серверу и гуям это ещё ни разу не мешалось.
В каждый момент не могут быть одинаковые ID.
Серверу удобно оперировать именно ID, т.к. не надо искать ноду, ID просто её индекс в массиве.
А если для каких-то сторонних программ надо уникальный для всех когда либо существовавших задач идентификатор, то для этого есть "serial".
Он представляет из себя просто порядковый номер зарегистрированной задачи.
Но его не следует использовать в гуях, он не участвует в монитор-эвентах. Использование его ограниченно.
Гуи лучше не делать с иcпользованием serial, т.к. задачу по serial серверу надо искать, а по ID доступ сразу.
Тимур Хайрулин
CGRU 3.3.1 Ubuntu 22.04LTS, MS Windows 10 (clients only).
Ответить