0.0.9 • Published 7 years ago

@askq/amqp v0.0.9

Weekly downloads
1
License
ISC
Repository
-
Last release
7 years ago

@askq/amqp

Use amqp with typescript decorators

Example

import {
    amqp,
    Request,
    Reply,
    RequestType,
    Producer,
    Publish,
    PublishType,
    Consumer,
    Consume
} from '@askq/amqp';

@Producer('hello-world')
class HelloWorldProducer {
    // Produce to "hello-world/print" queue
    @Produce('print')
    public print: PublishType<string>;
    @Request('printWait')
    public printWait: RequestType<string, string>;
}

@Consumer('hello-world')
class HelloWorldConsumer {
    // Consume from "hello-world/print" queue
    @Consume('print')
    public async onPrint(msg): Promise<boolean> {
        console.log('Print:', msg);
        return true;
    }
    @Reply('printWait')
    public async onPrintWait(msq): Promise<string> {
        console.log('PrintWait:', msg);
        return 'Done printing';
    }
}

async function run() {

    // Connect to amqp service
    let mq = await amqp.connect('amqp://rabbitmq:15672', {
        producers: [
            HelloWorldProducer
        ],
        consumers: [
            HelloWorldConsumer
        ]
    });

    let producer = new HelloWorldProducer();
    let consumer = new HelloWorldConsumer();
    await producer.print('Hello world');
    console.log('produced to print queue');
    let response = await producer.printWait('Hello world');
    console.log('response from printWait:', response);
}
run();

Result

    published print
    Print: Hello world!
    PrintWait: Hello world!
    response from printWait: Done printing
0.0.9

7 years ago

0.0.8

7 years ago

0.0.7

7 years ago

0.0.6

7 years ago

0.0.5

7 years ago

0.0.4

7 years ago

0.0.3

7 years ago

0.0.2

7 years ago

0.0.1

7 years ago