end0tknr's kipple - 新web写経開発

http://d.hatena.ne.jp/end0tknr/ から移転しました

javascriptによるジョブキュー・サーバ (as is)

今回は利用することはありませんでしたが、次のような感じかな?

(function() {
    //JavaScript JOB QUEUE SERVER
    var JobQueue = function() {};
    JobQueue.prototype = {
      
        JOB_QUEUE: new Array(),
        MAX_QUEUE_SIZE: 10,
        JOB_INTERVAL: 200, //msec
        TIMER: undefined,  //for setInterval , clearInterval
        
        add_job : function(job_args){
            if (this.chk_job(job_args) != 'OK'){
                return;
            }
            var job_key_str = job_args.join("\t");
            this.JOB_QUEUE.push(job_key_str);
        },

        chk_job : function(job_args){
            if( this.JOB_QUEUE.length>=this.MAX_QUEUE_SIZE ){ 
                return 'BAD';
            }
            //TODO CHECK JOB
            return 'OK';
        },

        do_job: function(){
            var job_key_str = this.JOB_QUEUE.pop();
            if(job_key_str == undefined){
                return;
            }
            //TODO DO JOB
        },

        start_job_worker: function(){
            this.TIMER = setInterval(this.do_job, this.JOB_INTERVAL);
        },
        stop_job_worker: function(){
            clearInterval(this.TIMER);
            this.TIMER = undefined;
        }
    };
    window.job_q = new JobQueue();
})();