🔧 Emitting confirmation events back to the client
This commit is contained in:
@@ -8,6 +8,7 @@ import { createServer } from "http";
|
|||||||
import { Server, Socket } from "socket.io";
|
import { Server, Socket } from "socket.io";
|
||||||
import { SocketIOMixin } from "../mixins/socket.io.mixin";
|
import { SocketIOMixin } from "../mixins/socket.io.mixin";
|
||||||
const SOCKET_HOST = process.env.DOCKER_HOST || `localhost`;
|
const SOCKET_HOST = process.env.DOCKER_HOST || `localhost`;
|
||||||
|
export const io = SocketIOMixin();
|
||||||
export default class ApiService extends Service {
|
export default class ApiService extends Service {
|
||||||
public constructor(broker: ServiceBroker) {
|
public constructor(broker: ServiceBroker) {
|
||||||
super(broker);
|
super(broker);
|
||||||
@@ -81,8 +82,8 @@ export default class ApiService extends Service {
|
|||||||
},
|
},
|
||||||
events: {
|
events: {
|
||||||
"**"(payload, sender, event) {
|
"**"(payload, sender, event) {
|
||||||
if (this.io)
|
if (io)
|
||||||
this.io.emit("event", {
|
io.emit("event", {
|
||||||
sender,
|
sender,
|
||||||
event,
|
event,
|
||||||
payload,
|
payload,
|
||||||
@@ -92,10 +93,9 @@ export default class ApiService extends Service {
|
|||||||
|
|
||||||
methods: {},
|
methods: {},
|
||||||
started(): any {
|
started(): any {
|
||||||
// Socket gateway-ish
|
|
||||||
this.io = SocketIOMixin();
|
|
||||||
// Add a connect listener
|
// Add a connect listener
|
||||||
this.io.on("connection", (client) => {
|
io.on("connection", (client) => {
|
||||||
console.log("Client connected via websocket!");
|
console.log("Client connected via websocket!");
|
||||||
|
|
||||||
client.on("action", async (action) => {
|
client.on("action", async (action) => {
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import { SandboxedJob } from "moleculer-bull";
|
|||||||
import { DbMixin } from "../mixins/db.mixin";
|
import { DbMixin } from "../mixins/db.mixin";
|
||||||
import Comic from "../models/comic.model";
|
import Comic from "../models/comic.model";
|
||||||
import { extractCoverFromFile2 } from "../utils/uncompression.utils";
|
import { extractCoverFromFile2 } from "../utils/uncompression.utils";
|
||||||
|
import { io } from "./api.service";
|
||||||
const REDIS_URI = process.env.REDIS_URI || `redis://0.0.0.0:6379`;
|
const REDIS_URI = process.env.REDIS_URI || `redis://0.0.0.0:6379`;
|
||||||
|
|
||||||
export default class LibraryQueueService extends Service {
|
export default class LibraryQueueService extends Service {
|
||||||
@@ -55,7 +56,6 @@ export default class LibraryQueueService extends Service {
|
|||||||
},
|
},
|
||||||
{}
|
{}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
return Promise.resolve({
|
return Promise.resolve({
|
||||||
dbImportResult,
|
dbImportResult,
|
||||||
@@ -66,7 +66,6 @@ export default class LibraryQueueService extends Service {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
actions: {
|
actions: {
|
||||||
|
|
||||||
enqueue: {
|
enqueue: {
|
||||||
rest: "POST /enqueue",
|
rest: "POST /enqueue",
|
||||||
params: {},
|
params: {},
|
||||||
@@ -83,27 +82,32 @@ export default class LibraryQueueService extends Service {
|
|||||||
},
|
},
|
||||||
methods: {},
|
methods: {},
|
||||||
async started(): Promise<any> {
|
async started(): Promise<any> {
|
||||||
const failed = await this.getQueue("process.import").on(
|
io.on("connection", async (client) => {
|
||||||
"failed",
|
await this.getQueue(
|
||||||
async (job, error) => {
|
"process.import"
|
||||||
|
).on("failed", async (job, error) => {
|
||||||
console.error(
|
console.error(
|
||||||
`An error occured in 'process.import' queue on job id '${job.id}': ${error.message}`
|
`An error occured in 'process.import' queue on job id '${job.id}': ${error.message}`
|
||||||
);
|
);
|
||||||
}
|
});
|
||||||
);
|
await this.getQueue(
|
||||||
const completed = await this.getQueue(
|
"process.import"
|
||||||
"process.import"
|
).on("completed", async (job, res) => {
|
||||||
).on("completed", async (job, res) => {
|
client.emit("action", {
|
||||||
console.info(
|
type: "LS_COVER_EXTRACTED",
|
||||||
`Job with the id '${job.id}' completed.`
|
result: res,
|
||||||
);
|
});
|
||||||
});
|
console.info(
|
||||||
const stalled = await this.getQueue(
|
`Job with the id '${job.id}' completed.`
|
||||||
"process.import"
|
);
|
||||||
).on("stalled", async (job) => {
|
});
|
||||||
console.warn(
|
await this.getQueue(
|
||||||
`The job with the id '${job} got stalled!`
|
"process.import"
|
||||||
);
|
).on("stalled", async (job) => {
|
||||||
|
console.warn(
|
||||||
|
`The job with the id '${job} got stalled!`
|
||||||
|
);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user