The model is available for download here:
${yoloWebUrl}/model/${id}
+
`;
+ try {
+ await (0, mail_1.sendMail)(email, subject, body);
+ }
+ catch (err) {
+ log.error('Error sending mail');
+ log.error(err);
+ }
+}
app.get('/', async (req, res, next) => {
let html;
let rows;
@@ -341,6 +402,7 @@ app.post('/job/:id', uploadOnnx.single('model'), async (req, res, next) => {
let filePath;
let meta = null;
let id;
+ let jobObj;
req.setTimeout(0);
if (typeof req.file === 'undefined' || req.file === null) {
log.error('No file in upload');
@@ -372,6 +434,19 @@ app.post('/job/:id', uploadOnnx.single('model'), async (req, res, next) => {
log.error(err);
return next(`Error completing training job ${id}`);
}
+ try {
+ jobObj = await get(id);
+ }
+ catch (err) {
+ log.error('Error getting job for alertCompleted');
+ log.error(err);
+ }
+ try {
+ await alertCompleted(id, jobObj.model, jobObj.name, jobObj.email);
+ }
+ catch (err) {
+ log.error('Error sending alertCompleted email');
+ }
res.json({ id });
});
app.get('/job/:id', async (req, res, next) => {
@@ -508,6 +583,12 @@ app.post('/job/claim/:id', async (req, res, next) => {
log.error(err);
return next('Error claiming job');
}
+ try {
+ await alertClaimed(id, jobObj.model, jobObj.name, jobObj.email);
+ }
+ catch (err) {
+ log.error(err);
+ }
resObj.id = id;
resObj.path = `/dataset/${id}`;
resObj.dataset = jobObj.dataset;
@@ -519,6 +600,7 @@ app.post('/job/claim/:id', async (req, res, next) => {
app.post('/job/fail/:id', async (req, res, next) => {
let id;
let meta = null;
+ let jobObj;
if (typeof req.params.id === 'undefined' || req.params.id === null) {
log.error(`No dataset id provided`);
return next('Invalid request');
@@ -535,6 +617,19 @@ app.post('/job/fail/:id', async (req, res, next) => {
log.error(err);
return next('Error failing job');
}
+ try {
+ jobObj = await get(id);
+ }
+ catch (err) {
+ log.error('Error getting job for alertFailed');
+ log.error(err);
+ }
+ try {
+ await alertFailed(id, jobObj.model, jobObj.name, jobObj.email);
+ }
+ catch (err) {
+ log.error('Error sending alertFailed email');
+ }
res.json(true);
});
app.listen(port, async () => {
diff --git a/dist/index.js.map b/dist/index.js.map
index 2923af5..35bbe0c 100644
--- a/dist/index.js.map
+++ b/dist/index.js.map
@@ -1 +1 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/src/index.ts b/src/index.ts
index 002bf49..18a6939 100755
--- a/src/index.ts
+++ b/src/index.ts
@@ -16,6 +16,7 @@ import { sendMail } from './mail';
import type { Logger } from 'winston';
import * as Handlebars from 'handlebars';
+const yoloWebUrl : string = typeof process.env['YOLO_WEB_URL'] !== 'undefined' ? process.env['YOLO_WEB_URL'] : 'http://localhost:3333';
const port : number = typeof process.env['PORT'] !== 'undefined' ? parseInt(process.env['PORT'], 10) : 3333;
const data : string = typeof process.env['DATADIR'] !== 'undefined' ? process.env['DATADIR'] : './data';
const dbPath : string = join(data, 'queue.sqlite');
@@ -199,6 +200,19 @@ async function claim (id : string) : Promise
{
});
}
+async function get (id : string) : Promise {
+ const query : string = `SELECT * FROM queue WHERE id = ? LIMIT 1;`;
+ return new Promise((resolve : Function, reject : Function) => {
+ return db.all(query, [id], (err : Error, rows : any) => {
+ if (err) return reject(err);
+ if (rows.length < 1) {
+ return reject(new Error(`Job ${id} does not exist`));
+ }
+ return resolve(rows[0]);
+ });
+ });
+}
+
async function fail (id : string, meta : string | null) : Promise {
const query : string = `UPDATE queue SET failed = CURRENT_TIMESTAMP, meta = ? WHERE id = ?;`;
return new Promise((resolve : Function, reject : Function) => {
@@ -243,6 +257,52 @@ function annotate (row : any) {
return row;
}
+async function alertClaimed (id : string, model : string, name : string, email : string) {
+ const subject : string = `Training ${name} started`;
+ const body : string = `Your ${model} training job "${name}" has started!
+
+
Status is available here:
${yoloWebUrl}/job/${id}
+
+
You will receive an email when the training is complete.
+
`
+ try {
+ await sendMail(email, subject, body);
+ } catch (err) {
+ log.error('Error sending mail');
+ log.error(err);
+ }
+}
+
+async function alertFailed (id : string, model : string, name : string, email : string) {
+ const subject : string = `Training ${name} failed`;
+ const body : string = `
Your ${model} training job "${name}" has failed :(
+
+
Additional information is available here:
${yoloWebUrl}/job/${id}
+
+
Please contact the administrator for more information
+
`
+ try {
+ await sendMail(email, subject, body);
+ } catch (err) {
+ log.error('Error sending mail');
+ log.error(err);
+ }
+}
+
+async function alertCompleted (id : string, model : string, name : string, email : string) {
+ const subject : string = `Training ${name} completed`;
+ const body : string = `
Your ${model} training job "${name}" has completed!
+
+
The model is available for download here:
${yoloWebUrl}/model/${id}
+
`
+ try {
+ await sendMail(email, subject, body);
+ } catch (err) {
+ log.error('Error sending mail');
+ log.error(err);
+ }
+}
+
app.get('/', async (req : Request, res : Response, next : NextFunction) => {
let html : string;
let rows : any[];
@@ -321,6 +381,7 @@ app.post('/job/:id', uploadOnnx.single('model'), async (req : Request, res : Res
let filePath : string;
let meta : string = null;
let id : string;
+ let jobObj : any;
req.setTimeout(0);
@@ -356,6 +417,19 @@ app.post('/job/:id', uploadOnnx.single('model'), async (req : Request, res : Res
return next(`Error completing training job ${id}`);
}
+ try {
+ jobObj = await get(id);
+ } catch (err) {
+ log.error('Error getting job for alertCompleted');
+ log.error(err);
+ }
+
+ try {
+ await alertCompleted(id, jobObj.model, jobObj.name, jobObj.email);
+ } catch (err) {
+ log.error('Error sending alertCompleted email');
+ }
+
res.json({ id });
});
@@ -513,6 +587,12 @@ app.post('/job/claim/:id', async (req : Request, res: Response, next : NextFunct
return next('Error claiming job');
}
+ try {
+ await alertClaimed(id, jobObj.model, jobObj.name, jobObj.email);
+ } catch (err) {
+ log.error(err);
+ }
+
resObj.id = id;
resObj.path = `/dataset/${id}`;
resObj.dataset = jobObj.dataset;
@@ -526,6 +606,7 @@ app.post('/job/claim/:id', async (req : Request, res: Response, next : NextFunct
app.post('/job/fail/:id', async (req : Request, res: Response, next : NextFunction) => {
let id : string;
let meta : string = null;
+ let jobObj : any;
if (typeof req.params.id === 'undefined' || req.params.id === null) {
log.error(`No dataset id provided`);
@@ -545,6 +626,19 @@ app.post('/job/fail/:id', async (req : Request, res: Response, next : NextFuncti
return next('Error failing job');
}
+ try {
+ jobObj = await get(id);
+ } catch (err) {
+ log.error('Error getting job for alertFailed');
+ log.error(err);
+ }
+
+ try {
+ await alertFailed(id, jobObj.model, jobObj.name, jobObj.email);
+ } catch (err) {
+ log.error('Error sending alertFailed email');
+ }
+
res.json(true);
});