用node写的一个简单单例队列demo

本文介绍了一个用于任务管理的队列模块实现,该模块能够设置任务数量限制,提供任务的添加、移除、暂停和恢复等功能,同时支持获取当前的任务状态和任务数量,适用于多种应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

var Queue = function (setcount) {
    this.list = [];//任务列表
    this.cur_nonce = 0;
    this.last_nonce = 0;
    if (setcount == 0 && typeof setcount != 'number') this.count = 50;
    this.count = 50;
    this.ps = false;
};
Queue.prototype = {
    clear: function () {
        this.list.length = 0;
        this.cur_nonce = 0;
        return this;
    },

    pause: function () {
        this.ps = true;
    },
    rec: function () {
        this.ps = false;
    },

    push: function (nonce) {
        this.list.push(nonce);
    },

    shift: function () {
        return this.list.sort().shift();
    },

    set_nonce: function (nonce) {
        if (this.list.length > this.count) {
            return this;
        };
        if (nonce) {
            this.cur_nonce = nonce;
        } else {
            if(this.cur_nonce){
                this.cur_nonce++;
            }else{
                this.list.length = 0;
            }
        };
        this.list.push(this.cur_nonce);
        return this;
    },

    get_nonce: function () {
        return this.cur_nonce;
    },
    get_taskcount: function () {
        return this.list.length;
    },
    get_first: function () {
        return this.list.sort()[0];
    }
};

var single = (function () {
    var unique;
    function getInstance(setcount) {
        if (unique === undefined) {
            unique = new Queue(setcount);
        }
        return unique;
    };
    return {
        getInstance: getInstance
    }
})();
module.exports = single;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

北纬32.6

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值