@webtypen/webframez-core 0.3.0 → 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/dev/.env.example +1 -0
  2. package/dev/MongoDBDriver.ts +173 -0
  3. package/dev/app.ts +0 -22
  4. package/dev/commands/TestCommand.ts +13 -0
  5. package/dev/config/database.ts +17 -0
  6. package/dev/config/queue.ts +29 -0
  7. package/dev/console.ts +37 -0
  8. package/dev/jobs/TestJob.ts +11 -0
  9. package/dev/storage/queue/log_worker_1.log +198 -0
  10. package/dev/storage/queue/log_worker_2.log +88 -0
  11. package/dev/storage/queue/log_worker_3.log +88 -0
  12. package/dev/storage/queue/worker_worker_1.json +1 -0
  13. package/dev/storage/queue/worker_worker_2.json +1 -0
  14. package/dev/storage/queue/worker_worker_3.json +1 -0
  15. package/dist/Commands/BuildFinishCommand.js +1 -1
  16. package/dist/Commands/ConsoleCommand.d.ts +24 -2
  17. package/dist/Commands/ConsoleCommand.js +38 -6
  18. package/dist/Commands/ConsoleOutputHelper.d.ts +17 -0
  19. package/dist/Commands/ConsoleOutputHelper.js +203 -0
  20. package/dist/Commands/QueueLogCommand.d.ts +6 -0
  21. package/dist/Commands/QueueLogCommand.js +102 -0
  22. package/dist/Commands/QueueStartCommand.d.ts +6 -0
  23. package/dist/Commands/QueueStartCommand.js +117 -0
  24. package/dist/Commands/QueueStatusCommand.d.ts +6 -0
  25. package/dist/Commands/QueueStatusCommand.js +94 -0
  26. package/dist/Commands/QueueStopCommand.d.ts +8 -0
  27. package/dist/Commands/QueueStopCommand.js +114 -0
  28. package/dist/Commands/QueueWorkerAutorestartCommand.d.ts +12 -0
  29. package/dist/Commands/QueueWorkerAutorestartCommand.js +102 -0
  30. package/dist/Commands/QueueWorkerCommand.d.ts +31 -0
  31. package/dist/Commands/QueueWorkerCommand.js +541 -0
  32. package/dist/ConsoleApplication.d.ts +10 -0
  33. package/dist/ConsoleApplication.js +160 -35
  34. package/dist/Database/Model.d.ts +7 -0
  35. package/dist/Database/Model.js +18 -0
  36. package/dist/Functions/DateFunctions.d.ts +1 -0
  37. package/dist/Functions/DateFunctions.js +3 -0
  38. package/dist/Functions/FileFunctions.d.ts +1 -0
  39. package/dist/Functions/FileFunctions.js +13 -9
  40. package/dist/Queue/BaseQueueJob.d.ts +1 -0
  41. package/dist/Queue/BaseQueueJob.js +7 -0
  42. package/dist/index.d.ts +2 -0
  43. package/dist/index.js +2 -0
  44. package/dist/info.d.ts +3 -0
  45. package/dist/info.js +6 -0
  46. package/package.json +3 -2
  47. package/src/Commands/BuildFinishCommand.ts +1 -1
  48. package/src/Commands/ConsoleCommand.ts +47 -5
  49. package/src/Commands/ConsoleOutputHelper.ts +233 -0
  50. package/src/Commands/QueueLogCommand.ts +93 -0
  51. package/src/Commands/QueueStartCommand.ts +121 -0
  52. package/src/Commands/QueueStatusCommand.ts +82 -0
  53. package/src/Commands/QueueStopCommand.ts +105 -0
  54. package/src/Commands/QueueWorkerAutorestartCommand.ts +97 -0
  55. package/src/Commands/QueueWorkerCommand.ts +647 -0
  56. package/src/ConsoleApplication.ts +169 -35
  57. package/src/Database/DBDrivers.ts +7 -7
  58. package/src/Database/Model.ts +18 -0
  59. package/src/Functions/DateFunctions.ts +4 -0
  60. package/src/Functions/FileFunctions.ts +13 -9
  61. package/src/Queue/BaseQueueJob.ts +8 -0
  62. package/src/index.ts +2 -0
  63. package/src/info.ts +3 -0
  64. package/src/Commands/QueueRunCommand.ts +0 -221
@@ -0,0 +1 @@
1
+ MONGODB_URL=
@@ -0,0 +1,173 @@
1
+ const { MongoClient, ServerApiVersion, ObjectId } = require("mongodb");
2
+ import { BaseDBDriver, Model, QueryBuilder } from "../src";
3
+
4
+ export class MongoDBDriver extends BaseDBDriver {
5
+ client: typeof MongoClient = null;
6
+
7
+ async connect() {
8
+ if (this.client) {
9
+ return this.client;
10
+ }
11
+
12
+ if (!this.config || !this.config["url" as keyof {}]) {
13
+ throw new Error("Missing MongoDB-URL ...");
14
+ }
15
+
16
+ const client = new MongoClient(this.config["url" as keyof {}], {
17
+ serverApi: ServerApiVersion.v1,
18
+ });
19
+
20
+ try {
21
+ await client.connect();
22
+ } catch (e) {
23
+ throw e;
24
+ }
25
+ return client;
26
+ }
27
+
28
+ async close(client: any) {
29
+ if (client) {
30
+ await client.close();
31
+ }
32
+
33
+ client = null;
34
+ }
35
+
36
+ async handleQueryBuilder(client: any, queryBuilder: QueryBuilder) {
37
+ const aggregation: any[] = [];
38
+
39
+ // Match
40
+ const match: { [key: string]: any } = {};
41
+ if (queryBuilder && queryBuilder.query && queryBuilder.query.length > 0) {
42
+ for (let q of queryBuilder.query) {
43
+ if (q.type === "where") {
44
+ match[q.column] =
45
+ q.operator === ">="
46
+ ? { $gte: q.value }
47
+ : q.operator === ">"
48
+ ? { $gt: q.value }
49
+ : q.operator === "<="
50
+ ? { $lte: q.value }
51
+ : q.operator === "<"
52
+ ? { $lt: q.value }
53
+ : q.operator === "!="
54
+ ? { $ne: q.value }
55
+ : q.value;
56
+ }
57
+ }
58
+
59
+ aggregation.push({ $match: match });
60
+ }
61
+
62
+ // Sort
63
+ const sort: { [key: string]: any } = {};
64
+ if (queryBuilder && queryBuilder.sort && queryBuilder.sort.length > 0) {
65
+ for (let i in queryBuilder.sort) {
66
+ if (queryBuilder.sort[i] && queryBuilder.sort[i].column) {
67
+ sort[queryBuilder.sort[i].column] =
68
+ queryBuilder.sort[i].sort === "ASC" ? 1 : queryBuilder.sort[i].sort === "DESC" ? -1 : queryBuilder.sort[i].sort;
69
+ }
70
+ }
71
+ }
72
+ if (sort && Object.keys(sort).length > 0) {
73
+ aggregation.push({ $sort: sort });
74
+ }
75
+
76
+ // Offset
77
+ if (queryBuilder && queryBuilder.offsetCount && parseInt(queryBuilder.offsetCount.toString()) > 0) {
78
+ aggregation.push({
79
+ $skip: parseInt(queryBuilder.offsetCount.toString()),
80
+ });
81
+ }
82
+
83
+ // Limit
84
+ if (queryBuilder && queryBuilder.limitCount && parseInt(queryBuilder.limitCount.toString()) > 0) {
85
+ aggregation.push({
86
+ $limit: parseInt(queryBuilder.limitCount.toString()),
87
+ });
88
+ }
89
+
90
+ if (queryBuilder.mode === "delete") {
91
+ // Delete many action
92
+ return await client
93
+ .db(queryBuilder.database ?? null)
94
+ .collection(queryBuilder.queryTable)
95
+ .deleteMany(match);
96
+ } else if (queryBuilder.mode === "deleteOne") {
97
+ // Delete one action
98
+ return await client
99
+ .db(queryBuilder.database ?? null)
100
+ .collection(queryBuilder.queryTable)
101
+ .deleteOne(match);
102
+ } else if (queryBuilder.mode === "count") {
103
+ // Count action
104
+ const data = await client
105
+ .db(queryBuilder.database ?? null)
106
+ .collection(queryBuilder.queryTable)
107
+ .aggregate([...aggregation, { $group: { _id: null, count: { $sum: 1 } } }, { $project: { _id: 0 } }])
108
+ .toArray();
109
+ return data && data[0] && data[0].count !== undefined ? data[0].count : 0;
110
+ } else {
111
+ // Select actions
112
+ if (queryBuilder.mode === "first") {
113
+ aggregation.push({ $limit: 1 });
114
+ }
115
+
116
+ const data = await client
117
+ .db(queryBuilder.database ?? null)
118
+ .collection(queryBuilder.queryTable)
119
+ .aggregate(aggregation)
120
+ .toArray();
121
+
122
+ if (queryBuilder.mode === "first") {
123
+ return data && data[0] ? data[0] : null;
124
+ }
125
+ return data && data.length > 0 ? data : null;
126
+ }
127
+ }
128
+
129
+ async execute(client: any, executionData: any, options?: any) {
130
+ // Aggregation
131
+ if (executionData.type === "aggregation") {
132
+ return await client
133
+ .db(executionData.database ? executionData.database : null)
134
+ .collection(executionData.table)
135
+ .aggregate(executionData.aggregation, options)
136
+ .toArray();
137
+ }
138
+
139
+ // insertOne
140
+ else if (executionData.type === "insertOne") {
141
+ return await client
142
+ .db(executionData.database ? executionData.database : null)
143
+ .collection(executionData.table)
144
+ .insertOne(executionData.data);
145
+ }
146
+
147
+ // updateOne
148
+ else if (executionData.type === "updateOne") {
149
+ return await client
150
+ .db(executionData.database ? executionData.database : null)
151
+ .collection(executionData.table)
152
+ .updateOne(executionData.filter, { $set: executionData.data });
153
+ }
154
+
155
+ return null;
156
+ }
157
+
158
+ async onModelSave(model: Model, saveStatus: any | null | undefined) {
159
+ if (!saveStatus) {
160
+ return model;
161
+ }
162
+
163
+ // Set primary-key after insert (ObjectID)
164
+ if (saveStatus.insertedId && model) {
165
+ model[model.__primaryKey] = saveStatus.insertedId;
166
+ }
167
+ return model;
168
+ }
169
+
170
+ async objectId(val?: any) {
171
+ return val && typeof val === "string" ? new ObjectId(val) : val ? val : new ObjectId();
172
+ }
173
+ }
package/dev/app.ts CHANGED
@@ -74,25 +74,3 @@ app.boot({
74
74
  });
75
75
  },
76
76
  });
77
-
78
- function getBoundary(contentType: string) {
79
- const match = contentType.match(/boundary=(.+)$/);
80
- return match ? `--${match[1]}` : null;
81
- }
82
-
83
- function parseHeaders(headerPart: string) {
84
- const headers: { [key: string]: string } = {};
85
- const lines = headerPart.split("\r\n");
86
- lines.forEach((line) => {
87
- const parts = line.split(":");
88
- if (parts.length === 2) {
89
- headers[parts[0].trim()] = parts[1].trim();
90
- }
91
- });
92
- return headers;
93
- }
94
-
95
- function getFilename(contentDisposition: string) {
96
- const match = contentDisposition.match(/filename="(.+?)"/);
97
- return match ? match[1] : null;
98
- }
@@ -0,0 +1,13 @@
1
+ import { ConsoleCommand } from "../../src/Commands/ConsoleCommand";
2
+
3
+ export class TestCommand extends ConsoleCommand {
4
+ static signature = "test:command";
5
+ static description = "a temporary test command";
6
+
7
+ async handle() {
8
+ while (true) {
9
+ this.writeln(`Write "Test" every 5 seconds ...`);
10
+ await new Promise((resolve) => setTimeout(resolve, 5000));
11
+ }
12
+ }
13
+ }
@@ -0,0 +1,17 @@
1
+ export default {
2
+ /**
3
+ * Specifies which connection definition should be used as default connection
4
+ */
5
+ defaultConnection: "default",
6
+
7
+ connections: {
8
+ ["default"]: {
9
+ /**
10
+ * Available drivers:
11
+ * mongodb, mysql
12
+ */
13
+ driver: "mongodb",
14
+ url: process.env.MONGODB_URL,
15
+ },
16
+ },
17
+ };
@@ -0,0 +1,29 @@
1
+ export default {
2
+ workers: {
3
+ worker_1: {
4
+ is_active: true,
5
+ // jobclasses: [],
6
+ automation: [
7
+ {
8
+ jobclass: "TestJob",
9
+ executions: [
10
+ ["tuesdays", "01:02"],
11
+ ["daily", "01:04"],
12
+ ["every_hour"],
13
+ ["every_hour", 1],
14
+ ["daily", "02:23"],
15
+ ["daily", "02:24"],
16
+ ["daily", "02:25"],
17
+ ["every_hour", 20],
18
+ ],
19
+ },
20
+ ],
21
+ },
22
+ worker_2: {
23
+ is_active: true,
24
+ },
25
+ worker_3: {
26
+ is_active: true,
27
+ },
28
+ },
29
+ };
package/dev/console.ts ADDED
@@ -0,0 +1,37 @@
1
+ import dotenv from "dotenv";
2
+ import { ConsoleApplication } from "../src/ConsoleApplication";
3
+ import { BaseKernelConsole } from "../src/BaseKernelConsole";
4
+ import { DBDrivers } from "../src/Database/DBDrivers";
5
+ import { DBConnection } from "../src/Database/DBConnection";
6
+ import { MongoDBDriver } from "./MongoDBDriver";
7
+ import { TestCommand } from "./commands/TestCommand";
8
+
9
+ dotenv.config();
10
+
11
+ import database from "./config/database";
12
+ import queue from "./config/queue";
13
+ import { TestJob } from "./jobs/TestJob";
14
+
15
+ class KernelConsole extends BaseKernelConsole {
16
+ static commands: any = [TestCommand];
17
+ }
18
+
19
+ const QUEUE_JOBS: any[] = [TestJob];
20
+
21
+ DBDrivers.register("mongodb", MongoDBDriver);
22
+ const app = new ConsoleApplication();
23
+ app.boot({
24
+ kernel: KernelConsole,
25
+ config: {
26
+ application: {},
27
+ database: database,
28
+ queue: queue,
29
+ },
30
+ jobs: QUEUE_JOBS,
31
+ onEnd: async () => {
32
+ const connection = await DBConnection.getConnection();
33
+ if (connection && connection.client) {
34
+ connection.driver.close(connection.client);
35
+ }
36
+ },
37
+ });
@@ -0,0 +1,11 @@
1
+ import { BaseQueueJob } from "../../src/Queue/BaseQueueJob";
2
+
3
+ export class TestJob extends BaseQueueJob {
4
+ static title = "TestJob";
5
+
6
+ async handle(job: any) {
7
+ this.log("TestJob");
8
+ await this.wait(2500);
9
+ this.log("job finished");
10
+ }
11
+ }
@@ -0,0 +1,198 @@
1
+ [worker_1 | 25-08-05 01:43:07] Worker worker_1 received stop signal.
2
+ [worker_1 | 25-08-05 01:43:07] Queue stopped
3
+
4
+ [worker_1 | 25-08-05 01:43:13] Starting worker
5
+ [worker_1 | 25-08-05 01:43:16] Queue started
6
+ [worker_1 | 25-08-05 01:43:43] Worker worker_1 received stop signal.
7
+ [worker_1 | 25-08-05 01:43:43] Queue stopped
8
+
9
+ [worker_1 | 25-08-05 01:43:48] Starting worker
10
+ [worker_1 | 25-08-05 01:43:52] Queue started
11
+
12
+  ERROR  Queue run failed: Cannot read properties of undefined (reading 'identifier')
13
+
14
+ [worker_1 | 25-08-05 01:45:04] Queue stopped
15
+
16
+ [worker_1 | 25-08-05 01:48:16] Starting worker
17
+ [worker_1 | 25-08-05 01:48:19] Queue started
18
+ [worker_1 | 25-08-05 01:50:02] Start Job #3 - TestJob (every_x_mins: 5)
19
+ [worker_1 | 25-08-05 01:50:28] Finished Job #3 - TestJob - 25.83s
20
+ [worker_1 | 25-08-05 01:55:04] Start Job #4 - TestJob (every_x_mins: 5)
21
+ [worker_1 | 25-08-05 01:55:30] Finished Job #4 - TestJob - 25.81s
22
+ [worker_1 | 25-08-05 02:00:02] Start Job #5 - TestJob (every_x_mins: 5)
23
+ [worker_1 | 25-08-05 02:00:28] Finished Job #5 - TestJob - 25.80s
24
+ [worker_1 | 25-08-05 02:03:47] Worker worker_1 received stop signal.
25
+ [worker_1 | 25-08-05 02:03:47] Queue stopped
26
+
27
+ [worker_1 | 25-08-05 02:03:54] Starting worker
28
+ [worker_1 | 25-08-05 02:04:00] Queue started
29
+ [worker_1 | 25-08-05 02:04:25] Worker worker_1 received stop signal.
30
+ [worker_1 | 25-08-05 02:04:25] Queue stopped
31
+ [worker_1 | 25-08-05 02:04:29] Queue started
32
+
33
+ [worker_1 | 25-08-05 02:07:02] Starting worker
34
+ [worker_1 | 25-08-05 02:07:08] Queue started
35
+ [worker_1 | 25-08-05 02:07:17] Worker worker_1 received stop signal.
36
+ [worker_1 | 25-08-05 02:07:17] Queue stopped
37
+
38
+ [worker_1 | 25-08-05 02:07:35] Starting worker
39
+ [worker_1 | 25-08-05 02:07:41] Queue started
40
+ [worker_1 | 25-08-05 02:07:45] Worker worker_1 received stop signal.
41
+ [worker_1 | 25-08-05 02:07:45] Queue stopped
42
+
43
+ [worker_1 | 25-08-05 02:07:48] Starting worker
44
+ [worker_1 | 25-08-05 02:07:57] Queue started
45
+ [worker_1 | 25-08-05 02:09:07] Worker worker_1 received stop signal.
46
+ [worker_1 | 25-08-05 02:09:07] Queue stopped
47
+
48
+ [worker_1 | 25-08-05 02:09:10] Starting worker
49
+ [worker_1 | 25-08-05 02:09:16] Queue started
50
+ [worker_1 | 25-08-05 02:09:17] Start Job #6 - TestJob (every_x_mins: 1)
51
+ [worker_1 | 25-08-05 02:09:21] Queue started
52
+ [worker_1 | 25-08-05 02:10:03] Start Job #7 - TestJob (every_x_mins: 1)
53
+ [worker_1 | 25-08-05 02:10:07] Queue started
54
+ [worker_1 | 25-08-05 02:10:43] Worker worker_1 received stop signal.
55
+ [worker_1 | 25-08-05 02:10:43] Queue stopped
56
+
57
+ [worker_1 | 25-08-05 02:10:50] Starting worker
58
+ [worker_1 | 25-08-05 02:10:56] Queue started
59
+ [worker_1 | 25-08-05 02:11:01] Worker worker_1 received stop signal.
60
+ [worker_1 | 25-08-05 02:11:01] Queue stopped
61
+
62
+ [worker_1 | 25-08-05 02:11:04] Starting worker
63
+ [worker_1 | 25-08-05 02:11:11] Queue started
64
+ [worker_1 | 25-08-05 02:15:02] Start Job #8 - TestJob (every_x_mins: 5)
65
+ [worker_1 | 25-08-05 02:15:04] Finished Job #8 - TestJob - 2.50s
66
+ [worker_1 | 25-08-05 02:15:10] Worker worker_1 received stop signal.
67
+ [worker_1 | 25-08-05 02:15:10] Queue stopped
68
+
69
+ [worker_1 | 25-08-05 02:15:13] Starting worker
70
+ [worker_1 | 25-08-05 02:15:19] Queue started
71
+ [worker_1 | 25-08-05 02:15:19] Invalid execution type 'every_hour' for job 'TestJob' in worker automation.
72
+
73
+  ERROR  Invalid execution type 'every_hour' for job 'TestJob' in worker automation.
74
+
75
+ [worker_1 | 25-08-05 02:15:19] Invalid execution type 'every_hour' for job 'TestJob' in worker automation.
76
+
77
+  ERROR  Invalid execution type 'every_hour' for job 'TestJob' in worker automation.
78
+
79
+ [worker_1 | 25-08-05 02:15:19] Invalid execution type 'every_hour' for job 'TestJob' in worker automation.
80
+
81
+  ERROR  Invalid execution type 'every_hour' for job 'TestJob' in worker automation.
82
+
83
+ [worker_1 | 25-08-05 02:15:24] Invalid execution type 'every_hour' for job 'TestJob' in worker automation.
84
+
85
+  ERROR  Invalid execution type 'every_hour' for job 'TestJob' in worker automation.
86
+
87
+ [worker_1 | 25-08-05 02:15:24] Invalid execution type 'every_hour' for job 'TestJob' in worker automation.
88
+
89
+  ERROR  Invalid execution type 'every_hour' for job 'TestJob' in worker automation.
90
+
91
+ [worker_1 | 25-08-05 02:15:24] Invalid execution type 'every_hour' for job 'TestJob' in worker automation.
92
+
93
+  ERROR  Invalid execution type 'every_hour' for job 'TestJob' in worker automation.
94
+
95
+ [worker_1 | 25-08-05 02:15:29] Invalid execution type 'every_hour' for job 'TestJob' in worker automation.
96
+
97
+  ERROR  Invalid execution type 'every_hour' for job 'TestJob' in worker automation.
98
+
99
+ [worker_1 | 25-08-05 02:15:29] Invalid execution type 'every_hour' for job 'TestJob' in worker automation.
100
+
101
+  ERROR  Invalid execution type 'every_hour' for job 'TestJob' in worker automation.
102
+
103
+ [worker_1 | 25-08-05 02:15:29] Invalid execution type 'every_hour' for job 'TestJob' in worker automation.
104
+
105
+  ERROR  Invalid execution type 'every_hour' for job 'TestJob' in worker automation.
106
+
107
+ [worker_1 | 25-08-05 02:15:31] Worker worker_1 received stop signal.
108
+ [worker_1 | 25-08-05 02:15:31] Queue stopped
109
+
110
+ [worker_1 | 25-08-05 02:16:58] Starting worker
111
+ [worker_1 | 25-08-05 02:17:05] Queue started
112
+ [worker_1 | 25-08-05 02:17:59] Worker worker_1 received stop signal.
113
+ [worker_1 | 25-08-05 02:18:00] Queue stopped
114
+
115
+ [worker_1 | 25-08-05 02:18:03] Starting worker
116
+ [worker_1 | 25-08-05 02:18:10] Queue started
117
+ [worker_1 | 25-08-05 02:18:10] every_hour8===1
118
+ [worker_1 | 25-08-05 02:18:10] every_hour8===16
119
+ [worker_1 | 25-08-05 02:18:10] every_hour8===17
120
+ [worker_1 | 25-08-05 02:18:10] every_hour8===20
121
+ [worker_1 | 25-08-05 02:18:16] every_hour8===1
122
+ [worker_1 | 25-08-05 02:18:16] every_hour8===16
123
+ [worker_1 | 25-08-05 02:18:16] every_hour8===17
124
+ [worker_1 | 25-08-05 02:18:16] every_hour8===20
125
+ [worker_1 | 25-08-05 02:18:21] every_hour8===1
126
+ [worker_1 | 25-08-05 02:18:21] every_hour8===16
127
+ [worker_1 | 25-08-05 02:18:21] every_hour8===17
128
+ [worker_1 | 25-08-05 02:18:21] every_hour8===20
129
+ [worker_1 | 25-08-05 02:18:26] every_hour8===1
130
+ [worker_1 | 25-08-05 02:18:26] every_hour8===16
131
+ [worker_1 | 25-08-05 02:18:26] every_hour8===17
132
+ [worker_1 | 25-08-05 02:18:26] every_hour8===20
133
+ [worker_1 | 25-08-05 02:18:31] Worker worker_1 received stop signal.
134
+ [worker_1 | 25-08-05 02:18:31] Queue stopped
135
+
136
+ [worker_1 | 25-08-05 02:18:33] Starting worker
137
+ [worker_1 | 25-08-05 02:18:40] Queue started
138
+ [worker_1 | 25-08-05 02:18:59] Worker worker_1 received stop signal.
139
+ [worker_1 | 25-08-05 02:18:59] Queue stopped
140
+
141
+ [worker_1 | 25-08-05 02:19:03] Starting worker
142
+ [worker_1 | 25-08-05 02:19:09] Queue started
143
+ [worker_1 | 25-08-05 02:19:10] Start Job #2 - TestJob (every_hour: 19)
144
+ [worker_1 | 25-08-05 02:19:13] Finished Job #2 - TestJob - 2.50s
145
+ [worker_1 | 25-08-05 02:20:01] Start Job #3 - TestJob (every_hour: 20)
146
+ [worker_1 | 25-08-05 02:20:04] Finished Job #3 - TestJob - 2.51s
147
+ [worker_1 | 25-08-05 02:23:37] Worker worker_1 received stop signal.
148
+ [worker_1 | 25-08-05 02:23:37] Queue stopped
149
+
150
+ [worker_1 | 25-08-05 02:23:42] Starting worker
151
+ [worker_1 | 25-08-05 02:23:49] Queue started
152
+ [worker_1 | 25-08-05 02:23:49] Invalid execution format for job 'TestJob' in worker automation.
153
+
154
+  ERROR  Invalid execution format for job 'TestJob' in worker automation.
155
+
156
+ [worker_1 | 25-08-05 02:23:50] Start Job #4 - TestJob (daily: 02:23)
157
+ [worker_1 | 25-08-05 02:23:53] Finished Job #4 - TestJob - 2.51s
158
+ [worker_1 | 25-08-05 02:23:54] Invalid execution format for job 'TestJob' in worker automation.
159
+
160
+  ERROR  Invalid execution format for job 'TestJob' in worker automation.
161
+
162
+ [worker_1 | 25-08-05 02:23:59] Invalid execution format for job 'TestJob' in worker automation.
163
+
164
+  ERROR  Invalid execution format for job 'TestJob' in worker automation.
165
+
166
+ [worker_1 | 25-08-05 02:24:04] Invalid execution format for job 'TestJob' in worker automation.
167
+
168
+  ERROR  Invalid execution format for job 'TestJob' in worker automation.
169
+
170
+ [worker_1 | 25-08-05 02:24:05] Start Job #5 - TestJob (daily: 02:24)
171
+ [worker_1 | 25-08-05 02:24:07] Finished Job #5 - TestJob - 2.50s
172
+ [worker_1 | 25-08-05 02:24:09] Invalid execution format for job 'TestJob' in worker automation.
173
+
174
+  ERROR  Invalid execution format for job 'TestJob' in worker automation.
175
+
176
+ [worker_1 | 25-08-05 02:24:14] Invalid execution format for job 'TestJob' in worker automation.
177
+
178
+  ERROR  Invalid execution format for job 'TestJob' in worker automation.
179
+
180
+ [worker_1 | 25-08-05 02:24:20] Invalid execution format for job 'TestJob' in worker automation.
181
+
182
+  ERROR  Invalid execution format for job 'TestJob' in worker automation.
183
+
184
+ [worker_1 | 25-08-05 02:24:21] Worker worker_1 received stop signal.
185
+ [worker_1 | 25-08-05 02:24:21] Queue stopped
186
+
187
+ [worker_1 | 25-08-05 02:24:27] Starting worker
188
+ [worker_1 | 25-08-05 02:24:33] Queue started
189
+ [worker_1 | 25-08-05 02:25:03] Start Job #5 - TestJob (daily: 02:24)
190
+ [worker_1 | 25-08-05 02:25:05] Finished Job #5 - TestJob - 2.50s
191
+ [worker_1 | 25-08-05 02:25:06] Start Job #6 - TestJob (daily: 02:25)
192
+ [worker_1 | 25-08-05 02:25:09] Finished Job #6 - TestJob - 2.51s
193
+ [worker_1 | 25-08-05 03:00:03] Start Job #7 - TestJob (every_hour: NaN)
194
+ [worker_1 | 25-08-05 03:00:05] Finished Job #7 - TestJob - 2.50s
195
+ [worker_1 | 25-08-05 03:01:04] Start Job #8 - TestJob (every_hour: 1)
196
+ [worker_1 | 25-08-05 03:01:06] Finished Job #8 - TestJob - 2.50s
197
+ [worker_1 | 25-08-05 03:04:43] Worker worker_1 received stop signal.
198
+ [worker_1 | 25-08-05 03:04:43] Queue stopped
@@ -0,0 +1,88 @@
1
+ [worker_2 | 25-08-05 01:43:07] Worker worker_2 received stop signal.
2
+ [worker_2 | 25-08-05 01:43:07] Queue stopped
3
+
4
+ [worker_2 | 25-08-05 01:43:13] Starting worker
5
+ [worker_2 | 25-08-05 01:43:16] Queue started
6
+ [worker_2 | 25-08-05 01:43:43] Worker worker_2 received stop signal.
7
+ [worker_2 | 25-08-05 01:43:43] Queue stopped
8
+
9
+ [worker_2 | 25-08-05 01:43:48] Starting worker
10
+ [worker_2 | 25-08-05 01:43:52] Queue started
11
+ [worker_2 | 25-08-05 01:48:14] Worker worker_2 received stop signal.
12
+ [worker_2 | 25-08-05 01:48:14] Queue stopped
13
+
14
+ [worker_2 | 25-08-05 01:48:16] Starting worker
15
+ [worker_2 | 25-08-05 01:48:19] Queue started
16
+ [worker_2 | 25-08-05 02:03:48] Worker worker_2 received stop signal.
17
+ [worker_2 | 25-08-05 02:03:48] Queue stopped
18
+
19
+ [worker_2 | 25-08-05 02:03:54] Starting worker
20
+ [worker_2 | 25-08-05 02:04:00] Queue started
21
+ [worker_2 | 25-08-05 02:04:25] Worker worker_2 received stop signal.
22
+ [worker_2 | 25-08-05 02:04:25] Queue stopped
23
+ [worker_2 | 25-08-05 02:04:28] Queue started
24
+
25
+ [worker_2 | 25-08-05 02:07:02] Starting worker
26
+ [worker_2 | 25-08-05 02:07:08] Queue started
27
+ [worker_2 | 25-08-05 02:07:16] Worker worker_2 received stop signal.
28
+ [worker_2 | 25-08-05 02:07:16] Queue stopped
29
+
30
+ [worker_2 | 25-08-05 02:07:35] Starting worker
31
+ [worker_2 | 25-08-05 02:07:41] Queue started
32
+ [worker_2 | 25-08-05 02:07:45] Worker worker_2 received stop signal.
33
+ [worker_2 | 25-08-05 02:07:45] Queue stopped
34
+
35
+ [worker_2 | 25-08-05 02:07:48] Starting worker
36
+ [worker_2 | 25-08-05 02:07:57] Queue started
37
+ [worker_2 | 25-08-05 02:09:07] Worker worker_2 received stop signal.
38
+ [worker_2 | 25-08-05 02:09:07] Queue stopped
39
+
40
+ [worker_2 | 25-08-05 02:09:10] Starting worker
41
+ [worker_2 | 25-08-05 02:09:16] Queue started
42
+ [worker_2 | 25-08-05 02:10:43] Worker worker_2 received stop signal.
43
+ [worker_2 | 25-08-05 02:10:43] Queue stopped
44
+
45
+ [worker_2 | 25-08-05 02:10:50] Starting worker
46
+ [worker_2 | 25-08-05 02:10:56] Queue started
47
+ [worker_2 | 25-08-05 02:11:01] Worker worker_2 received stop signal.
48
+ [worker_2 | 25-08-05 02:11:01] Queue stopped
49
+
50
+ [worker_2 | 25-08-05 02:11:04] Starting worker
51
+ [worker_2 | 25-08-05 02:11:11] Queue started
52
+ [worker_2 | 25-08-05 02:15:10] Worker worker_2 received stop signal.
53
+ [worker_2 | 25-08-05 02:15:10] Queue stopped
54
+
55
+ [worker_2 | 25-08-05 02:15:13] Starting worker
56
+ [worker_2 | 25-08-05 02:15:19] Queue started
57
+ [worker_2 | 25-08-05 02:15:31] Worker worker_2 received stop signal.
58
+ [worker_2 | 25-08-05 02:15:31] Queue stopped
59
+
60
+ [worker_2 | 25-08-05 02:16:58] Starting worker
61
+ [worker_2 | 25-08-05 02:17:05] Queue started
62
+ [worker_2 | 25-08-05 02:18:00] Worker worker_2 received stop signal.
63
+ [worker_2 | 25-08-05 02:18:00] Queue stopped
64
+
65
+ [worker_2 | 25-08-05 02:18:03] Starting worker
66
+ [worker_2 | 25-08-05 02:18:10] Queue started
67
+ [worker_2 | 25-08-05 02:18:31] Worker worker_2 received stop signal.
68
+ [worker_2 | 25-08-05 02:18:31] Queue stopped
69
+
70
+ [worker_2 | 25-08-05 02:18:33] Starting worker
71
+ [worker_2 | 25-08-05 02:18:40] Queue started
72
+ [worker_2 | 25-08-05 02:18:59] Worker worker_2 received stop signal.
73
+ [worker_2 | 25-08-05 02:18:59] Queue stopped
74
+
75
+ [worker_2 | 25-08-05 02:19:03] Starting worker
76
+ [worker_2 | 25-08-05 02:19:09] Queue started
77
+ [worker_2 | 25-08-05 02:23:37] Worker worker_2 received stop signal.
78
+ [worker_2 | 25-08-05 02:23:37] Queue stopped
79
+
80
+ [worker_2 | 25-08-05 02:23:42] Starting worker
81
+ [worker_2 | 25-08-05 02:23:49] Queue started
82
+ [worker_2 | 25-08-05 02:24:21] Worker worker_2 received stop signal.
83
+ [worker_2 | 25-08-05 02:24:21] Queue stopped
84
+
85
+ [worker_2 | 25-08-05 02:24:27] Starting worker
86
+ [worker_2 | 25-08-05 02:24:33] Queue started
87
+ [worker_2 | 25-08-05 03:04:43] Worker worker_2 received stop signal.
88
+ [worker_2 | 25-08-05 03:04:43] Queue stopped