@commandkit/tasks 0.0.0-dev.20250727125301 → 0.0.0-dev.20250727130732
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.
- package/README.md +3 -1
- package/dist/driver-manager.d.ts +1 -1
- package/dist/driver-manager.js +1 -1
- package/dist/drivers/sqlite.d.ts +1 -0
- package/dist/drivers/sqlite.js +31 -17
- package/dist/index.js +5 -2
- package/dist/plugin.d.ts +9 -0
- package/dist/plugin.js +10 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -29,7 +29,9 @@ export default defineConfig({
|
|
|
29
29
|
});
|
|
30
30
|
```
|
|
31
31
|
|
|
32
|
-
### 2. Set up a driver
|
|
32
|
+
### 2. Set up a driver (optional)
|
|
33
|
+
|
|
34
|
+
By default, the plugin will initialize the sqlite driver. You can set up a different driver by calling `setDriver` function from the `@commandkit/tasks` package. If you want to disable the default driver initialization behavior, you can pass `initializeDefaultDriver: false` to the `tasks()` options in your commandkit config.
|
|
33
35
|
|
|
34
36
|
```ts
|
|
35
37
|
import { setDriver } from '@commandkit/tasks';
|
package/dist/driver-manager.d.ts
CHANGED
package/dist/driver-manager.js
CHANGED
|
@@ -150,4 +150,4 @@ function createTask(task) {
|
|
|
150
150
|
function deleteTask(identifier) {
|
|
151
151
|
return exports.taskDriverManager.deleteTask(identifier);
|
|
152
152
|
}
|
|
153
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
153
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJpdmVyLW1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZHJpdmVyLW1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBOEdBLDhCQUVDO0FBcUJELGdDQUVDO0FBZ0JELGdDQUVDO0FBdEpEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQkc7QUFDSCxNQUFhLGlCQUFpQjtJQUE5QjtRQUNTLFdBQU0sR0FBc0IsSUFBSSxDQUFDO0lBMkQxQyxDQUFDO0lBekRDOzs7Ozs7O09BT0c7SUFDSSxTQUFTLENBQUMsTUFBa0I7UUFDakMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNJLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBYztRQUNwQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU07WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLDhCQUE4QixDQUFDLENBQUM7UUFFbEUsT0FBTyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNJLEtBQUssQ0FBQyxVQUFVLENBQUMsVUFBa0I7UUFDeEMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1FBRWxFLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0ksS0FBSyxDQUFDLGFBQWEsQ0FBQyxNQUFrQjtRQUMzQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU07WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLDhCQUE4QixDQUFDLENBQUM7UUFFbEUsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxQyxDQUFDO0NBQ0Y7QUE1REQsOENBNERDO0FBRUQ7Ozs7O0dBS0c7QUFDVSxRQUFBLGlCQUFpQixHQUFHLElBQUksaUJBQWlCLEVBQUUsQ0FBQztBQUV6RDs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILFNBQWdCLFNBQVMsQ0FBQyxNQUFrQjtJQUMxQyx5QkFBaUIsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDdEMsQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQkc7QUFDSCxTQUFnQixVQUFVLENBQUMsSUFBYztJQUN2QyxPQUFPLHlCQUFpQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUM1QyxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNILFNBQWdCLFVBQVUsQ0FBQyxVQUFrQjtJQUMzQyxPQUFPLHlCQUFpQixDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUNsRCxDQUFDIn0=
|
package/dist/drivers/sqlite.d.ts
CHANGED
|
@@ -18,6 +18,7 @@ export declare class SQLiteDriver implements TaskDriver {
|
|
|
18
18
|
private runner;
|
|
19
19
|
private db;
|
|
20
20
|
private interval;
|
|
21
|
+
private statements;
|
|
21
22
|
/**
|
|
22
23
|
* Create a new SQLiteDriver instance.
|
|
23
24
|
* @param dbPath Path to the SQLite database file (default: './commandkit-tasks.db'). Use `:memory:` for an in-memory database.
|
package/dist/drivers/sqlite.js
CHANGED
|
@@ -42,7 +42,7 @@ class SQLiteDriver {
|
|
|
42
42
|
* Initialize the jobs table and start the polling loop.
|
|
43
43
|
*/
|
|
44
44
|
init() {
|
|
45
|
-
this.db.exec(`CREATE TABLE IF NOT EXISTS jobs (
|
|
45
|
+
this.db.exec(/* sql */ `CREATE TABLE IF NOT EXISTS jobs (
|
|
46
46
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
47
47
|
name TEXT NOT NULL,
|
|
48
48
|
data TEXT,
|
|
@@ -54,6 +54,19 @@ class SQLiteDriver {
|
|
|
54
54
|
created_at INTEGER NOT NULL,
|
|
55
55
|
last_run INTEGER
|
|
56
56
|
)`);
|
|
57
|
+
this.statements = {
|
|
58
|
+
count: this.db.prepare(
|
|
59
|
+
/* sql */ `SELECT COUNT(*) as count FROM jobs WHERE status = 'pending' AND next_run <= ?`),
|
|
60
|
+
select: this.db.prepare(
|
|
61
|
+
/* sql */ `SELECT * FROM jobs WHERE status = 'pending' AND next_run <= ? ORDER BY next_run ASC LIMIT ? OFFSET ?`),
|
|
62
|
+
insert: this.db.prepare(
|
|
63
|
+
/* sql */ `INSERT INTO jobs (name, data, schedule_type, schedule_value, timezone, next_run, status, created_at) VALUES (?, ?, ?, ?, ?, ?, 'pending', ?)`),
|
|
64
|
+
delete: this.db.prepare(/* sql */ `DELETE FROM jobs WHERE id = ?`),
|
|
65
|
+
updateNextRun: this.db.prepare(
|
|
66
|
+
/* sql */ `UPDATE jobs SET next_run = ?, last_run = ? WHERE id = ?`),
|
|
67
|
+
updateCompleted: this.db.prepare(
|
|
68
|
+
/* sql */ `UPDATE jobs SET status = 'completed', last_run = ? WHERE id = ?`),
|
|
69
|
+
};
|
|
57
70
|
this.startPolling();
|
|
58
71
|
}
|
|
59
72
|
/**
|
|
@@ -79,8 +92,7 @@ class SQLiteDriver {
|
|
|
79
92
|
scheduleValue = String(schedule);
|
|
80
93
|
nextRun = typeof schedule === 'number' ? schedule : schedule.getTime();
|
|
81
94
|
}
|
|
82
|
-
const
|
|
83
|
-
const result = stmt.run(name, JSON.stringify(data ?? {}), scheduleType, scheduleValue, timezone ?? null, nextRun, Date.now());
|
|
95
|
+
const result = this.statements.insert.run(name, JSON.stringify(data ?? {}), scheduleType, scheduleValue, timezone ?? null, nextRun, Date.now());
|
|
84
96
|
if (task.immediate) {
|
|
85
97
|
await this.runner?.({
|
|
86
98
|
name,
|
|
@@ -95,8 +107,7 @@ class SQLiteDriver {
|
|
|
95
107
|
* @param identifier Job ID
|
|
96
108
|
*/
|
|
97
109
|
async delete(identifier) {
|
|
98
|
-
|
|
99
|
-
stmt.run(identifier);
|
|
110
|
+
this.statements.delete.run(identifier);
|
|
100
111
|
}
|
|
101
112
|
/**
|
|
102
113
|
* Set the task runner function to be called when a job is due.
|
|
@@ -112,7 +123,7 @@ class SQLiteDriver {
|
|
|
112
123
|
startPolling() {
|
|
113
124
|
if (this.interval)
|
|
114
125
|
clearInterval(this.interval);
|
|
115
|
-
this.interval = setInterval(() => this.pollJobs(), 1000);
|
|
126
|
+
this.interval = setInterval(() => this.pollJobs(), 1000).unref();
|
|
116
127
|
// Run immediately on startup
|
|
117
128
|
this.pollJobs();
|
|
118
129
|
}
|
|
@@ -123,10 +134,16 @@ class SQLiteDriver {
|
|
|
123
134
|
if (!this.runner)
|
|
124
135
|
return;
|
|
125
136
|
const now = Date.now();
|
|
126
|
-
const
|
|
127
|
-
const
|
|
128
|
-
|
|
129
|
-
|
|
137
|
+
const chunkSize = 10;
|
|
138
|
+
const countResult = this.statements.count.get(now);
|
|
139
|
+
const totalJobs = countResult.count;
|
|
140
|
+
if (totalJobs === 0)
|
|
141
|
+
return;
|
|
142
|
+
for (let offset = 0; offset < totalJobs; offset += chunkSize) {
|
|
143
|
+
const rows = this.statements.select.all(now, chunkSize, offset);
|
|
144
|
+
for (const job of rows) {
|
|
145
|
+
this.executeJob(job);
|
|
146
|
+
}
|
|
130
147
|
}
|
|
131
148
|
}
|
|
132
149
|
/**
|
|
@@ -161,19 +178,16 @@ class SQLiteDriver {
|
|
|
161
178
|
nextRun = null;
|
|
162
179
|
}
|
|
163
180
|
if (nextRun) {
|
|
164
|
-
|
|
165
|
-
stmt.run(nextRun, now, job.id);
|
|
181
|
+
this.statements.updateNextRun.run(nextRun, now, job.id);
|
|
166
182
|
}
|
|
167
183
|
else {
|
|
168
|
-
|
|
169
|
-
stmt.run(now, job.id);
|
|
184
|
+
this.statements.updateCompleted.run(now, job.id);
|
|
170
185
|
}
|
|
171
186
|
}
|
|
172
187
|
else {
|
|
173
|
-
|
|
174
|
-
stmt.run(now, job.id);
|
|
188
|
+
this.statements.updateCompleted.run(now, job.id);
|
|
175
189
|
}
|
|
176
190
|
}
|
|
177
191
|
}
|
|
178
192
|
exports.SQLiteDriver = SQLiteDriver;
|
|
179
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
193
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3FsaXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RyaXZlcnMvc3FsaXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUVBLDZDQUEwRDtBQUMxRCw4REFBcUM7QUFFckM7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNILE1BQWEsWUFBWTtJQWF2Qjs7O09BR0c7SUFDSCxZQUFZLE1BQU0sR0FBRyx1QkFBdUI7UUFoQnBDLFdBQU0sR0FBc0IsSUFBSSxDQUFDO1FBRWpDLGFBQVEsR0FBMEIsSUFBSSxDQUFDO1FBZTdDLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSwwQkFBWSxDQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFRDs7T0FFRztJQUNJLE9BQU87UUFDWixJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxRQUFRLElBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxJQUFJO1FBQ1YsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDOzs7Ozs7Ozs7OztNQVdyQixDQUFDLENBQUM7UUFFSixJQUFJLENBQUMsVUFBVSxHQUFHO1lBQ2hCLEtBQUssRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU87WUFDcEIsU0FBUyxDQUFDLCtFQUErRSxDQUMxRjtZQUNELE1BQU0sRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU87WUFDckIsU0FBUyxDQUFDLHNHQUFzRyxDQUNqSDtZQUNELE1BQU0sRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU87WUFDckIsU0FBUyxDQUFDLDhJQUE4SSxDQUN6SjtZQUNELE1BQU0sRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLE9B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
|
package/dist/index.js
CHANGED
|
@@ -43,7 +43,10 @@ const plugin_1 = require("./plugin");
|
|
|
43
43
|
* @returns A configured tasks plugin instance
|
|
44
44
|
*/
|
|
45
45
|
function tasks(options) {
|
|
46
|
-
return new plugin_1.TasksPlugin(
|
|
46
|
+
return new plugin_1.TasksPlugin({
|
|
47
|
+
initializeDefaultDriver: true,
|
|
48
|
+
...options,
|
|
49
|
+
});
|
|
47
50
|
}
|
|
48
51
|
__exportStar(require("./plugin"), exports);
|
|
49
52
|
__exportStar(require("./task"), exports);
|
|
@@ -51,4 +54,4 @@ __exportStar(require("./types"), exports);
|
|
|
51
54
|
__exportStar(require("./driver"), exports);
|
|
52
55
|
__exportStar(require("./driver-manager"), exports);
|
|
53
56
|
__exportStar(require("./context"), exports);
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQTRCQSxzQkFLQztBQWpDRCxxQ0FBMkQ7QUFFM0Q7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F5Qkc7QUFDSCxTQUFnQixLQUFLLENBQUMsT0FBNEI7SUFDaEQsT0FBTyxJQUFJLG9CQUFXLENBQUM7UUFDckIsdUJBQXVCLEVBQUUsSUFBSTtRQUM3QixHQUFHLE9BQU87S0FDWCxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsMkNBQXlCO0FBQ3pCLHlDQUF1QjtBQUN2QiwwQ0FBd0I7QUFDeEIsMkNBQXlCO0FBQ3pCLG1EQUFpQztBQUNqQyw0Q0FBMEIifQ==
|
package/dist/plugin.d.ts
CHANGED
|
@@ -7,6 +7,15 @@ import { Task } from './task';
|
|
|
7
7
|
* Future versions may support customizing the tasks directory path and HMR behavior.
|
|
8
8
|
*/
|
|
9
9
|
export interface TasksPluginOptions {
|
|
10
|
+
/**
|
|
11
|
+
* Whether to initialize the default driver.
|
|
12
|
+
*
|
|
13
|
+
* If true, the plugin will initialize the default driver.
|
|
14
|
+
* If false, the plugin will not initialize the default driver.
|
|
15
|
+
*
|
|
16
|
+
* @default true
|
|
17
|
+
*/
|
|
18
|
+
initializeDefaultDriver?: boolean;
|
|
10
19
|
}
|
|
11
20
|
/**
|
|
12
21
|
* CommandKit plugin that provides task management capabilities.
|
package/dist/plugin.js
CHANGED
|
@@ -79,6 +79,15 @@ class TasksPlugin extends commandkit_1.RuntimePlugin {
|
|
|
79
79
|
* @param ctx - The CommandKit plugin runtime context
|
|
80
80
|
*/
|
|
81
81
|
async activate(ctx) {
|
|
82
|
+
if (this.options.initializeDefaultDriver && !driver_manager_1.taskDriverManager.driver) {
|
|
83
|
+
try {
|
|
84
|
+
const { SQLiteDriver } = require('./drivers/sqlite');
|
|
85
|
+
driver_manager_1.taskDriverManager.setDriver(new SQLiteDriver());
|
|
86
|
+
}
|
|
87
|
+
catch (e) {
|
|
88
|
+
commandkit_1.Logger.error(`Failed to initialize the default driver for tasks plugin: ${e?.stack || e}`);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
82
91
|
driver_manager_1.taskDriverManager.setTaskRunner(async (task) => {
|
|
83
92
|
try {
|
|
84
93
|
const taskInstance = this.tasks.get(task.name);
|
|
@@ -220,4 +229,4 @@ class TasksPlugin extends commandkit_1.RuntimePlugin {
|
|
|
220
229
|
}
|
|
221
230
|
}
|
|
222
231
|
exports.TasksPlugin = TasksPlugin;
|
|
223
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
232
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3BsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyQ0FRb0I7QUFDcEIsK0NBQTJDO0FBQzNDLHVEQUF1QztBQUN2QyxpQ0FBOEI7QUFDOUIsK0NBQW1DO0FBQ25DLHFEQUFxRDtBQUNyRCx1Q0FBd0M7QUFDeEMscUNBQXFDO0FBb0JyQzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQkc7QUFDSCxNQUFhLFdBQVksU0FBUSwwQkFBaUM7SUFBbEU7O1FBQ0UsaUNBQWlDO1FBQ2pCLFNBQUksR0FBRyxPQUFPLENBQUM7UUFFL0IsK0RBQStEO1FBQy9DLFVBQUssR0FBRyxJQUFJLHVCQUFVLEVBQWdCLENBQUM7SUErTHpELENBQUM7SUE3TEM7Ozs7Ozs7OztPQVNHO0lBQ0ksS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUE0QjtRQUNoRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsdUJBQXVCLElBQUksQ0FBQyxrQ0FBaUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN0RSxJQUFJLENBQUM7Z0JBQ0gsTUFBTSxFQUFFLFlBQVksRUFBRSxHQUNwQixPQUFPLENBQUMsa0JBQWtCLENBQXNDLENBQUM7Z0JBRW5FLGtDQUFpQixDQUFDLFNBQVMsQ0FBQyxJQUFJLFlBQVksRUFBRSxDQUFDLENBQUM7WUFDbEQsQ0FBQztZQUFDLE9BQU8sQ0FBTSxFQUFFLENBQUM7Z0JBQ2hCLG1CQUFNLENBQUMsS0FBSyxDQUNWLDZEQUE2RCxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsRUFBRSxDQUM3RSxDQUFDO1lBQ0osQ0FBQztRQUNILENBQUM7UUFFRCxrQ0FBaUIsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFO1lBQzdDLElBQUksQ0FBQztnQkFDSCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFD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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@commandkit/tasks",
|
|
3
|
-
"version": "0.0.0-dev.
|
|
3
|
+
"version": "0.0.0-dev.20250727130732",
|
|
4
4
|
"description": "Task management plugin for CommandKit",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -45,8 +45,8 @@
|
|
|
45
45
|
"devDependencies": {
|
|
46
46
|
"bullmq": "^5.56.5",
|
|
47
47
|
"typescript": "^5.8.3",
|
|
48
|
-
"commandkit": "1.0.0-dev.
|
|
49
|
-
"tsconfig": "0.0.0-dev.
|
|
48
|
+
"commandkit": "1.0.0-dev.20250727130732",
|
|
49
|
+
"tsconfig": "0.0.0-dev.20250727130732"
|
|
50
50
|
},
|
|
51
51
|
"dependencies": {
|
|
52
52
|
"cron-parser": "^4.9.0"
|