1.1.2 • Published 5 years ago

faqueue v1.1.2

Weekly downloads
2
License
ISC
Repository
github
Last release
5 years ago

faQueue

Versions:

  • 1.0.7:
    • pause and resume queue popping feature added.
  • 1.0.6:
    • bug fixes
  • 1.0.5:
    • queue's can wait for other queue's to finish.
  • 1.0.4:
    • get length of job function added
    • delete and clean job
    • delete and clean queue
  • 1.0.3:
    • get length of queue function added
  • 1.0.2:
    • bug fix

Support:

Let's have a talk: faraz.faraji@gmail.com

Usages:

  • When you want to run some task at defined time. example: send notification to user 2 hours later after setting appointment

  • When you want to create a queue and get data every 5 seconds example: when you want to send many requests to the any endpoint, but you do not want to send all of the request together.

How to use:

  • Queue
const faQueue = require("faqueue");
const queue = require("faqueue/queue");
faQueue.connect("0.0.0.0",8586,3);// set your redis host and port and database (0-12)
let queueObject =  new queue({name: "test", interval: 3000, cb: receivedQueue,max_try:2,waitFor:["Other queue name"]}); // interval as ms

async function receivedQueue(data) {
    console.log(data.message);
    if(data.message.status===false)
        await queueObject.setAsFailed(data);
}

async function testQueue() {
    await queueObject.addToQueue({data: "hello",status:false});
    await queueObject.addToQueue({data: "hello world",status:true});
    await queueObject.startFetch();
    await queueObject.pause();
    await queueObject.resume();
}
testQueue();
  • Job
const faQueue = require("faqueue");
const job = require("faqueue/job");
faQueue.connect("0.0.0.0",8586,3);
let jobObject =  new job({name: "test",max_try:2},jobReceived);

async function jobReceived(data){
    console.log(data.message);
    if(data.message.status===false)
        await jobObject.setAsFailed(data);
}
async function testJob(){
// available parameters is second,minute,hour,day. they are optional but you need to set one of them
    await jobObject.addJob({data:"hello",status:false},{second:3});
    await jobObject.addJob({data:"hello 1",status:true},{second:3,hour:4});
    await jobObject.addJob({data:"hello 2",status:false},{second:3,minute:21,hour:3,day:2});
    }
testJob();

Queue Functions

  • constructor (worker:worker object): {name: "name_of_queue", interval: "interval_time_in_ms", cb: "callback function",max_try:"maximum try for failed times" }.

  • addToQueue (data:string | json): to add item to the end of the queue.

  • startFetch(): start pop from line.

  • setAsFailed(data: faQueue object,toEnd=true): call this function to add object to the first or end of line again

  • getLength(): get length of line

  • removeQueue(): remove and clean queue

Job Functions

  • constructor (worker:worker object): {name: "name of job",max_try:"maximum try for failed times"},"Callback function" }.

  • addJob (data:string | json): to add item to jobs.

  • setAsFailed(data: faQueue object,toEnd=true): call this function to add object to jobs list again.

  • getLength(): get length of jobs object

  • removeJob(): remove and clean jobs list

1.1.2

5 years ago

1.1.1

5 years ago

1.1.0

5 years ago

1.0.9

5 years ago

1.0.8

5 years ago

1.0.7

5 years ago

1.0.6

5 years ago

1.0.5

5 years ago

1.0.4

6 years ago

1.0.2

6 years ago

1.0.3

6 years ago

1.0.1

6 years ago

1.0.0

6 years ago