Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Каркас шины, код MODAIB-3 #2

Open
akumidv opened this issue Sep 19, 2020 · 0 comments
Open

Каркас шины, код MODAIB-3 #2

akumidv opened this issue Sep 19, 2020 · 0 comments

Comments

@akumidv
Copy link
Member

akumidv commented Sep 19, 2020

Шина получает входные сигналы, например из таска ёMODAIB-2: Метаданные агента и сигналаё или из ёMODAIB-4: Каркас генератора сигналов из историиё

Что нужно. На этот сигнал, назовем его OnQuote - если мы получили - мы проверяем, нужно сохранять или нет из свойств сигнала и после этого вызываем все подписанные на сигнал агентов.

Агента мы регистрируем в шине по

MODAIB-2: Метаданные агента и сигнала - т.е. в регистри он создан. Возможно как-то инициализирован, если инициализация для агента важна (пакеты зависимостей устанавливать наверное не надо, но параметры сигналов входны и выходных можно регистрировать).

После запуска агента с тиком(значением) сигнала мы в соответствии с параметрами агента - ожидаем или не ожидаем ответа от него (сигнала)

Если есть ответ от агента - мы его раскидываем во все агенты которые на него подписаны. Если тип сигнала тербует сохранения в классе - сохраняем.

Вопрос только в том у меня - как в систему отдавать ответ. По идее в торговой системе - мы можем отдавать овтеты в ответ на запрос - чтобы не генерировать с внешней системы запрос на новые данные - т.е. как-то регистрирыровать ответы. По идее это какой-то специальный типа агента, который ожидает запроса сигнала - он копит очередь(?)

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

  • формирование очереди пока не обработает (размер очереди надо где-то задавать)
  • передаче всей очереди пакетом в агента,
  • пропуск сигналов пока нет ответа от агента о готовности принять сигнал,
  • подача сигнала без учета ответа (подал и забыл)

Размер максимальной очереди - надо выности в параметры модуля в deploy

Агенты должны иметь разделяемую и сохраняемую память между запусками обработки на сигналы. Надо ли сохранять эту память при выходе из системы - хороший вопрос. Возможно надо иметь отдельное поле - в объекте агента для сохранения этих значений и инициаилазации этим значением при старте агента. Сохранять можно по:

  • результатам инициализации агента
  • по результатам обработки каждого сигнала
  • по счетчику сохраненных сигналов
  • по параметру агента о необходимости сохранить значение
  • периодически по времени (нужен интервал времени)
  • по выходу(остановке) системы или выгрузке агента

Ещё нужен режим обучения/тестирования/демо - параметр для агентов и шины в которой она не сохраняет полученные сигналы в классах и передаем агентам, что это тестовый режим - это для таска

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Development

No branches or pull requests

2 participants