Coder Social home page Coder Social logo

mq-component-hs's Introduction

mq-component-hs

Сборка

Сборка данной библиотеки осуществляется из внутренней сети компании BIOCAD (до того момента, как данный компонент будет переведён в hackage) с помощью инструмента stack:

stack build

Использование в сторонних библиотеках

Данная библиотека используется при разработке компонентов на языке haskell. Её необходимо подключить в зависимостях разрабатываемой библиотеки.

Создание нового компонента

Порядок создания нового компонента описан тут.

Запуск примеров

Подразумевается, что "одно место" у вас уже запущено на локальной машине (подробнее читай в документации mq).

Перед запуском необходимо собрать все примеры с помощью команды

stack build

Пример "радио"

Является примером асинхронного общения двух компонентов: один умеет формировать и рассылать сообщения, а другой их получать и обрабатывать.

Типы сообщений для данного примера определены в этом файле.

"Радио точка" реализована в этом файле и запускается с помощью команды

stack exec example-radio-speaker

Получатель сообщений реализован в этом файле и запускается с помощью команды

stack exec example-radio-listener

Можно обратить внимание на то, что получатель сообщений реализован с использованием соответствующего шаблона.

Пример "калькулятор"

Является примером компонента, который умеет принять соответствующее сообщение с конфигурацией, обработать его и отправить результат обратно. Раньше такой компонент назывался "рабочим".

Типы сообщений для данного примера определены в этом файле.

Логика простейшего калькулятора описана в этом файле, а запускается он с помощью команды

stack exec example-calculator

Поставить задачу этому компоненту можно с помощью библиотеки mq-jobcontrol. Необходимо помнить, что калькулятор к этому моменту уже должен быть запущен.

Можно обратить внимание на то, что калькулятор реализован с использованием соответствующего шаблона.

Пример "банк"

Является примером того, как один компонент при выполнении задачи может использовать другой компонент. При выполнении задачи банк будет использовать компонент из примера "калькулятор", который описан выше. Поэтому и его тоже надо запустить.

Типы сообщений для данного примера определены в этом файле.

Логика нашего банка определена в этом файле, а запускается он с помощью команды

stack exec example-bank

Поставить задачу этому компоненту можно также с помощью библиотеки mq-jobcontrol.

Можно обратить внимание на то, что банк использует шаблон "рабочего" и вызов удалённого компонента.

Пример "часики"

Является примером компонента, задачи на который распределяются через контроллер (для более подробной информации читай тут).

Типы сообщений для данного примера определены в этом файле.

Пример состоит из двух частей. Первая часть принимает сообщение от соответствующего контроллера и возвращает в очередь ответ с текущим временем. Логика этого компонента определена в этом файле

Компонент, который выполняет работу, описан в этом файле. Перед запускам этого компонента необходимо запустить контроллер. Как именно это сделать, описано в этом репозитории. Для запуска конкретно этого примера никаких правок в файле config.json производить не следует.

После запуска контроллера сам компонент можно запустить с помощью команды

stack exec example-clock-reply
stack exec example-clock-reply

Здесь приведена одна и та же команда. Их можно ввести в различных терминалах. Если всё будет запущено правильно, то после запуска второй части (которая описана ниже) можно будет увидеть, что эти два приложения будут по очереди принимать и выполнять задачи.

Вторая часть совсем простая. Это самый обычный компонент, который в некоторой периодичностью отправляет в очередь вопрос, а получив на него ответ просто его печатает. Логика этого компонента описана в этом файле и его можно запустить с помощью команды

stack exec example-clock-ask

Порядок реализации компонента

Как вы уже наверняка знаете, для полноценной работы компонента в его обёртке необходимо реализовать различную функциональность. Ниже приведены указания на места в библиотеке с соответствующей реализацией.

Основные модули:

Дополнительные модули:

mq-component-hs's People

Contributors

ozzzzz avatar alexkanerus avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.