Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- "use strict";
- var amqplib = require("amqplib");
- var format = require("string-format");
- var DEVICE_SETTINGS = {
- MODEL: "6‐diesel_generator_schema",
- INSTANCE_NAME: "test_dg",
- DEVICE_ID: "56090580e7e466125aa1c0a5",
- INSTRUMENT: "generator",
- WRITER: "power",
- TYPE: "boolean",
- };
- var API_DATA = {
- HOST: "localhost",
- PASSWORD: "anypass",
- USERNAME: format("{MODEL}/{INSTANCE_NAME}", DEVICE_SETTINGS).replace('/', '%2F')
- };
- var binding_key = format("miimetiq.ds.writer.{TYPE}.{MODEL}." +
- "{DEVICE_ID}.{INSTRUMENT}.{WRITER}", DEVICE_SETTINGS);
- var amqp_url = format("amqp://{USERNAME}:{PASSWORD}@{HOST}", API_DATA);
- var channel = null;
- amqplib.connect(amqp_url).then(createChanel);
- function createChanel(conn) {
- conn.createChannel().then(createBindQueue);
- };
- function createBindQueue(ch) {
- channel = ch;
- ch.assertQueue().then(function (ok) {
- ch.bindQueue(ok.queue, "miimetiq", binding_key
- ).then(startConsuming);
- });
- }
- function startConsuming(ok) {
- channel.consume(ok.queue, processMessage).then(
- function () {
- console.log(" [*] Waiting for messages. To exit press CTRL+C");
- }
- )
- }
- function processMessage(msg) {
- console.log(format(" [x] {}:{}", msg.fields.routingKey, msg.properties.correlationId));
- var task_id = msg.properties.correlationId;
- var answer_msg = JSON.stringify({
- status: "SUCCESS",
- result: {status: "OK"},
- task_id: task_id
- });
- publishToCelery(answer_msg, task_id.replace(/-/g, ''))
- }
- function publishToCelery(msg, task_id) {
- channel.assertQueue(task_id).then(function (ok) {
- channel.bindQueue(task_id, "celeryresults", task_id).then(function (ok) {
- channel.publish("celeryresults",
- task_id,
- new Buffer(msg),
- {contentType: "application/json"});
- });
- });
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement