npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

batch_task

v1.1.2

Published

最近总是遇到批量查询处理数据的任务,有时任务量很大就必须将任务分成若干批次,然后分批次 处理,于是创作了这个工具。

Downloads

11

Readme

##简介 最近总是遇到批量查询处理数据的任务,有时任务量很大就必须将任务分成若干批次,然后分批次 处理,于是创作了这个工具。

##特别说明

  • 数据格式: 数据必须是以数组的形式传入,否则将抛出错误
  • 错误处理: 若某个operation出现错误,模块会捕捉错误,并将该次处理结果置成undefined
  • 异步操作: 若操作是类似http请求的异步操作,可使用Promise

##配置参数

  • data : 即要处理的数据组成的数组,数组里面的每个数据应该是同类不同值的
  • operation: 即针对单个数据所做的操作
  • scale : 每批次操作的数据量
  • log : Bool类型,表示是否显示进度

##事件

  • data: 该事件表示某一个批次的处理结果已经来了
  • end : 表示所有的数据已经处理完
  • error:表示出现错误

Install

  npm install batch_task

用法示例

  • work with Promise
   var BatchTask=require("batch_task");
   var data=[];
   for(var i=0;i<1000;i++)
   {
       data.push(i+1);
   }

   var options={
       "scale":100,//how many datas to deal per time ,they will be lanched at the same time
       "data":data,//the data must be an array
       "log":true,//will log the progress
       "operation":function(i){
           //if the operation need time to accomplish(such as http request) ,you can return a Promise;
           //if some error occured ,the result of this operation will return undefined ,each operation is
           //independent
            return new Promise(function(resolve,reject){
                setTimeout(function(){
                   if(Math.random()>0.5)
                   {
                       resolve(i-1);
                   }else{
                       reject(new Error("test error"));
                   }
                },200);
            });
       }
   };

   var batch=new BatchTask(options);

   batch.fire();
   batch.on("data",function(data){
       console.log(data[data.length-1]);
   });

   batch.on("end",function(){
       console.log("done");
   });
   batch.on("error",function(er){
       console.log(er);
   });

  var BatchTask=require("batch_task");
  var data=[];
  for(var i=0;i<100000;i++)
  {
     data.push(i+1);
  }

  var options={
     "scale":100,//how many datas to deal per time ,they will be lanched at the same time
     "data":data,//the data must be an array
     "operation":function(i){//your operation toward each data
         return i-1;
     }
  };

  var batch=new BatchTask(options);

  batch.fire();

  batch.on("data",function(data){
     console.log(data[data.length-1]);
  });

  batch.on("end",function(){
     console.log("done");
  });

  batch.on("error",function(er){
   console.log(er);
  });