Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 8776e4e

Browse files
Albert LiAlbert Li
Albert Li
authored and
Albert Li
committed
add concurrent work
1 parent e81bd7a commit 8776e4e

File tree

3 files changed

+127
-37
lines changed

3 files changed

+127
-37
lines changed

package-lock.json

Lines changed: 57 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 37 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,38 @@
11
{
2-
"name": "code_challenge",
3-
"version": "1.0.1",
4-
"description": "leetCode Challenge",
5-
"main": "./src/index.ts",
6-
"scripts": {
7-
"build": "rm -rf ./dist && tsc -p .",
8-
"prerestart": "tsc --watch",
9-
"start": "ts-node src/index.ts",
10-
"start:dev": "nodemon src/index.ts",
11-
"format": "prettier --write \"src/**/*.ts\"",
12-
"lint": "eslint '{src,apps,libs,test}/**/*.ts' --fix"
13-
},
14-
"keywords": [
15-
"leetCode",
16-
"Challenge"
17-
],
18-
"author": "11",
19-
"license": "ISC",
20-
"dependencies": {
21-
"ts-node": "6.2.0",
22-
"typescript": "3.1.1"
23-
},
24-
"devDependencies": {
25-
"@types/node": "^13.7.6",
26-
"@typescript-eslint/eslint-plugin": "^2.21.0",
27-
"@typescript-eslint/parser": "^2.21.0",
28-
"eslint": "^6.8.0",
29-
"eslint-config-prettier": "^6.10.0",
30-
"eslint-plugin-import": "^2.20.1",
31-
"nodemon": "^2.0.2",
32-
"prettier": "^2.0.5",
33-
"tsconfig-paths": "^3.9.0"
34-
}
35-
}
2+
"name": "code_challenge",
3+
"version": "1.0.1",
4+
"description": "leetCode Challenge",
5+
"main": "./src/index.ts",
6+
"scripts": {
7+
"build": "rm -rf ./dist && tsc -p .",
8+
"prerestart": "tsc --watch",
9+
"start": "ts-node src/index.ts",
10+
"start:dev": "nodemon src/index.ts",
11+
"format": "prettier --write \"src/**/*.ts\"",
12+
"lint": "eslint '{src,apps,libs,test}/**/*.ts' --fix",
13+
"local": "ts-node src/test/concurrency.ts"
14+
},
15+
"keywords": [
16+
"leetCode",
17+
"Challenge"
18+
],
19+
"author": "11",
20+
"license": "ISC",
21+
"dependencies": {
22+
"@types/node-fetch": "^2.5.7",
23+
"node-fetch": "^2.6.0",
24+
"ts-node": "6.2.0",
25+
"typescript": "3.1.1"
26+
},
27+
"devDependencies": {
28+
"@types/node": "^13.7.6",
29+
"@typescript-eslint/eslint-plugin": "^2.21.0",
30+
"@typescript-eslint/parser": "^2.21.0",
31+
"eslint": "^6.8.0",
32+
"eslint-config-prettier": "^6.10.0",
33+
"eslint-plugin-import": "^2.20.1",
34+
"nodemon": "^2.0.2",
35+
"prettier": "^2.0.5",
36+
"tsconfig-paths": "^3.9.0"
37+
}
38+
}

src/test/concurrency.ts

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
import fetch from 'node-fetch';
2+
3+
let images = ['https://stackoverflow.com', 'https://stackoverflow.com', 'https://stackoverflow.com', 'https://stackoverflow.com', 'https://stackoverflow.com', 'https://stackoverflow.com', 'https://stackoverflow.com', 'https://stackoverflow.com', 'https://stackoverflow.com', 'https://stackoverflow.com'];
4+
5+
let concurrency = 5;
6+
7+
// Array(concurrency)
8+
// .fill(images.entries())
9+
// .map(async (cursor) => {
10+
// for (let [index, url] of cursor) {
11+
// console.log('Get Image: ', index, url);
12+
// let i = await fetch(url).then((res) => res.text());
13+
// console.log('i: ', index, i.slice(0, 100));
14+
// }
15+
// });
16+
17+
setTimeout(async () => {
18+
for (let i: number = 0; i < images.length; i += 5) {
19+
let _images = images.slice(i, i + 5);
20+
21+
console.log('batch image start: ', i);
22+
23+
await Promise.all(
24+
_images.map(async (value, index, array) => {
25+
console.log('image start: ', index + i);
26+
await fetch(value).then((res) => res.text());
27+
console.log('image end: ', index + i);
28+
}),
29+
);
30+
31+
console.log('batch image end: ', i);
32+
}
33+
}, 0);

0 commit comments

Comments
 (0)