From 392160fdbbb45a93ebc90d57577fb62227de4c5e Mon Sep 17 00:00:00 2001 From: schneefux Date: Sat, 1 Apr 2017 12:02:40 +0200 Subject: rewrite in node --- package.json | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 package.json (limited to 'package.json') diff --git a/package.json b/package.json new file mode 100644 index 0000000..0f84dca --- /dev/null +++ b/package.json @@ -0,0 +1,17 @@ +{ + "name": "compiler", + "version": "2.0.0", + "description": "", + "main": "model.js", + "dependencies": { + "amqplib": "^0.5.1", + "mysql": "^2.13.0", + "sequelize": "^3.30.4" + }, + "devDependencies": {}, + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "schneefux", + "license": "UNLICENSED" +} -- cgit v1.3.1 From 3406a3e76754859cbee257a61f150160597b73fa Mon Sep 17 00:00:00 2001 From: schneefux Date: Tue, 4 Apr 2017 12:06:26 +0200 Subject: wait for rabbit and db to start --- package.json | 3 ++- worker.js | 23 +++++++++++++++++------ 2 files changed, 19 insertions(+), 7 deletions(-) (limited to 'package.json') diff --git a/package.json b/package.json index 0f84dca..66afc71 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,8 @@ "dependencies": { "amqplib": "^0.5.1", "mysql": "^2.13.0", - "sequelize": "^3.30.4" + "sequelize": "^3.30.4", + "sleep-promise": "^2.0.0" }, "devDependencies": {}, "scripts": { diff --git a/worker.js b/worker.js index 11da36f..a31f97d 100644 --- a/worker.js +++ b/worker.js @@ -3,7 +3,8 @@ 'use strict'; var amqp = require("amqplib"), - Seq = require("sequelize"); + Seq = require("sequelize"), + sleep = require("sleep-promise"); var RABBITMQ_URI = process.env.RABBITMQ_URI || "amqp://localhost", DATABASE_URI = process.env.DATABASE_URI || "sqlite:///db.sqlite", @@ -11,17 +12,27 @@ var RABBITMQ_URI = process.env.RABBITMQ_URI || "amqp://localhost", IDLE_TIMEOUT = process.env.PROCESSOR_IDLETIMEOUT || 500; // ms (async () => { - let seq = new Seq(DATABASE_URI, { logging: () => {} }), - model = require("../orm/model")(seq, Seq), - rabbit = await amqp.connect(RABBITMQ_URI), - ch = await rabbit.createChannel(); + let seq, model, rabbit, ch; + + while (true) { + try { + seq = new Seq(DATABASE_URI, { logging: () => {} }), + rabbit = await amqp.connect(RABBITMQ_URI), + ch = await rabbit.createChannel(); + await ch.assertQueue("compile", {durable: true}); + break; + } catch (err) { + console.error(err); + await sleep(5000); + } + } + model = require("../orm/model")(seq, Seq); let queue = [], timer = undefined; await seq.sync(); - await ch.assertQueue("compile", {durable: true}); // as long as the queue is filled, msg are not ACKed // server sends as long as there are less than `prefetch` unACKed await ch.prefetch(BATCHSIZE); -- cgit v1.3.1