Skip to content

Commit f1580e6

Browse files
committed
feat: cpp addon with multithreading for predictions
1 parent c656ce4 commit f1580e6

File tree

23 files changed

+1112
-36
lines changed

23 files changed

+1112
-36
lines changed

.vscode/settings.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"files.associations": {
3+
"iostream": "cpp"
4+
}
5+
}

background.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
2+
3+
console.log("background is running...");
4+
const schedualing = require("./services/scheduling");
5+
schedualing.fetchAllContests();

main.js

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
if (process.env.NODE_ENV !== "production") {
2+
require("dotenv").config();
3+
}
4+
5+
const mongoose = require("mongoose");
6+
mongoose.connect(process.env.DATABASE_URL, {
7+
useNewUrlParser: true,
8+
useUnifiedTopology: true,
9+
});
10+
mongoose.set("useFindAndModify", false);
11+
12+
const db = mongoose.connection;
13+
14+
db.on("error", (error) => console.error(error));
15+
db.once("open", () => {
16+
console.log("Connected to Mongoose");
17+
18+
if (process.env.WEB == true) {
19+
require("./server");
20+
}
21+
if (process.env.BACKGROUND == true) {
22+
require("./background");
23+
}
24+
});

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
"description": "",
55
"main": "server.js",
66
"scripts": {
7-
"start": "node server.js",
8-
"dev": "nodemon server.js"
7+
"start": "node main.js",
8+
"dev": "nodemon main.js --max_old_space_size=1024"
99
},
1010
"keywords": [],
1111
"author": "",

server.js

Lines changed: 19 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,20 @@
1-
if(process.env.NODE_ENV !== 'production') {
2-
require('dotenv').config()
3-
}
4-
5-
const express = require('express')
6-
const app = express()
7-
app.use(express.urlencoded({extended: true}))
8-
const expressLayouts = require('express-ejs-layouts')
9-
const indexRouter = require('./routes/index')
10-
app.set('view engine','ejs')
11-
app.set('views',__dirname +'/views')
12-
app.set('layout','layouts/layout')
13-
app.use(expressLayouts)
14-
app.use(express.static('public'))
15-
16-
const mongoose = require("mongoose")
17-
mongoose.connect(process.env.DATABASE_URL,{
18-
useNewUrlParser:true,
19-
useUnifiedTopology: true
20-
})
21-
const db = mongoose.connection
22-
db.on('error',error => console.error(error))
23-
db.once('open',() => console.log('Connected to Mongoose'))
24-
mongoose.set('useFindAndModify', false);
25-
26-
app.use('/',indexRouter)
27-
28-
app.listen(process.env.PORT || 3000)
29-
30-
// const predict = require('./services/predict')
31-
const schedualing = require('./services/scheduling')
32-
schedualing.fetchAllContests()
33-
// const users = require('./services/users')
34-
const contest = require('./services/contests')
1+
const express = require("express");
2+
const app = express();
3+
app.use(express.urlencoded({ extended: true }));
4+
const expressLayouts = require("express-ejs-layouts");
5+
const indexRouter = require("./routes/index");
6+
app.set("view engine", "ejs");
7+
app.set("views", __dirname + "/views");
8+
app.set("layout", "layouts/layout");
9+
app.use(expressLayouts);
10+
app.use(express.static("public"));
11+
app.use("/", indexRouter);
3512

13+
const port = process.env.PORT || 8080;
14+
app.listen(port, "0.0.0.0", (err) => {
15+
if (err) {
16+
console.error(err);
17+
return;
18+
}
19+
console.log("Listening on " + port);
20+
});

services/predict-addon/addon.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
const addon = require("./build/Release/predict_addon");
2+
module.exports = addon;

services/predict-addon/binding.gyp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"targets": [
3+
{
4+
"target_name": "predict_addon",
5+
"sources": ["./cpp/main.cpp"],
6+
},
7+
]
8+
}

0 commit comments

Comments
 (0)