Skip to content

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

@akumidv

Description

@akumidv

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

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

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

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

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

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

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

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

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

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

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

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

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

Metadata

Metadata

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions