@pikku/schedule 0.6.1 → 0.7.0
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/CHANGELOG.md +15 -0
- package/dist/pikku-task-scheduler.js +4 -3
- package/package.json +3 -3
- package/src/index.ts +0 -1
- package/src/pikku-task-scheduler.ts +0 -83
- package/tsconfig.json +0 -18
- package/tsconfig.tsbuildinfo +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# @pikku/schedule
|
|
2
2
|
|
|
3
|
+
## 0.7.0
|
|
4
|
+
|
|
5
|
+
- Updating to match remaining packages
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
## 0.6.2
|
|
9
|
+
|
|
10
|
+
### Patch Changes
|
|
11
|
+
|
|
12
|
+
- ebc04eb: refactor: move all global state into pikku state
|
|
13
|
+
- Updated dependencies [ebc04eb]
|
|
14
|
+
- Updated dependencies [8a14f3a]
|
|
15
|
+
- Updated dependencies [2c47386]
|
|
16
|
+
- @pikku/core@0.6.17
|
|
17
|
+
|
|
3
18
|
## 0.6.1
|
|
4
19
|
|
|
5
20
|
### Patch Changes
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { CronJob } from 'cron';
|
|
2
|
-
import {
|
|
2
|
+
import { pikkuState, } from '@pikku/core';
|
|
3
|
+
import { runScheduledTask } from '@pikku/core/scheduler';
|
|
3
4
|
export class PikkuTaskScheduler {
|
|
4
5
|
singletonServices;
|
|
5
6
|
createSessionServices;
|
|
@@ -9,7 +10,7 @@ export class PikkuTaskScheduler {
|
|
|
9
10
|
this.createSessionServices = createSessionServices;
|
|
10
11
|
}
|
|
11
12
|
startAll() {
|
|
12
|
-
const
|
|
13
|
+
const scheduledTasks = pikkuState('scheduler', 'tasks');
|
|
13
14
|
scheduledTasks.forEach((task) => this.startJobSchedule(task));
|
|
14
15
|
}
|
|
15
16
|
stopAll() {
|
|
@@ -17,7 +18,7 @@ export class PikkuTaskScheduler {
|
|
|
17
18
|
this.jobs.clear();
|
|
18
19
|
}
|
|
19
20
|
start(names) {
|
|
20
|
-
const
|
|
21
|
+
const scheduledTasks = pikkuState('scheduler', 'tasks');
|
|
21
22
|
for (const name of names) {
|
|
22
23
|
const task = scheduledTasks.get(name);
|
|
23
24
|
if (task) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pikku/schedule",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"author": "yasser.fadl@gmail.com",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"module": "dist/index.js",
|
|
@@ -8,16 +8,16 @@
|
|
|
8
8
|
"type": "module",
|
|
9
9
|
"scripts": {
|
|
10
10
|
"tsc": "tsc",
|
|
11
|
+
"ncu": "npx npm-check-updates",
|
|
11
12
|
"build:esm": "tsc -b",
|
|
12
13
|
"build": "yarn build:esm",
|
|
13
|
-
"ncu": "ncu",
|
|
14
14
|
"release": "npm run build && npm test",
|
|
15
15
|
"test": "bash run-tests.sh",
|
|
16
16
|
"test:watch": "bash run-tests.sh --watch",
|
|
17
17
|
"test:coverage": "bash run-tests.sh --coverage"
|
|
18
18
|
},
|
|
19
19
|
"peerDependencies": {
|
|
20
|
-
"@pikku/core": "^0.
|
|
20
|
+
"@pikku/core": "^0.7.0"
|
|
21
21
|
},
|
|
22
22
|
"devDependencies": {
|
|
23
23
|
"@types/node": "^22.7.8",
|
package/src/index.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { PikkuTaskScheduler } from './pikku-task-scheduler.js'
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import { CronJob } from 'cron'
|
|
2
|
-
import {
|
|
3
|
-
CoreAPIFunctionSessionless,
|
|
4
|
-
CoreServices,
|
|
5
|
-
CoreSingletonServices,
|
|
6
|
-
CoreUserSession,
|
|
7
|
-
CreateSessionServices,
|
|
8
|
-
} from '@pikku/core'
|
|
9
|
-
import {
|
|
10
|
-
getScheduledTasks,
|
|
11
|
-
runScheduledTask,
|
|
12
|
-
CoreScheduledTask,
|
|
13
|
-
} from '@pikku/core/scheduler'
|
|
14
|
-
|
|
15
|
-
export class PikkuTaskScheduler<TaskName extends string> {
|
|
16
|
-
private jobs = new Map<string, CronJob>()
|
|
17
|
-
|
|
18
|
-
constructor(
|
|
19
|
-
private singletonServices: CoreSingletonServices,
|
|
20
|
-
private createSessionServices?: CreateSessionServices<
|
|
21
|
-
CoreSingletonServices,
|
|
22
|
-
CoreServices,
|
|
23
|
-
CoreUserSession
|
|
24
|
-
>
|
|
25
|
-
) {}
|
|
26
|
-
|
|
27
|
-
public startAll() {
|
|
28
|
-
const { scheduledTasks } = getScheduledTasks()
|
|
29
|
-
scheduledTasks.forEach((task) => this.startJobSchedule(task))
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
public stopAll() {
|
|
33
|
-
this.jobs.forEach((job) => job.stop())
|
|
34
|
-
this.jobs.clear()
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
public start(names: TaskName[]) {
|
|
38
|
-
const { scheduledTasks } = getScheduledTasks()
|
|
39
|
-
for (const name of names) {
|
|
40
|
-
const task = scheduledTasks.get(name)
|
|
41
|
-
if (task) {
|
|
42
|
-
this.startJobSchedule(task)
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
public stop(names: TaskName[]) {
|
|
48
|
-
for (const name of names) {
|
|
49
|
-
const job = this.jobs.get(name)
|
|
50
|
-
if (job) {
|
|
51
|
-
job.stop()
|
|
52
|
-
this.jobs.delete(name)
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
private startJobSchedule(
|
|
58
|
-
task: CoreScheduledTask<
|
|
59
|
-
CoreAPIFunctionSessionless<void, void>,
|
|
60
|
-
CoreUserSession
|
|
61
|
-
>
|
|
62
|
-
) {
|
|
63
|
-
const job = new CronJob(
|
|
64
|
-
task.schedule,
|
|
65
|
-
async () => {
|
|
66
|
-
this.singletonServices.logger.info(
|
|
67
|
-
`Running scheduled task: ${task.name}`
|
|
68
|
-
)
|
|
69
|
-
await runScheduledTask({
|
|
70
|
-
singletonServices: this.singletonServices,
|
|
71
|
-
createSessionServices: this.createSessionServices as any,
|
|
72
|
-
name: task.name,
|
|
73
|
-
})
|
|
74
|
-
this.singletonServices.logger.debug(
|
|
75
|
-
`Completed scheduled task: ${task.name}`
|
|
76
|
-
)
|
|
77
|
-
},
|
|
78
|
-
null,
|
|
79
|
-
true
|
|
80
|
-
)
|
|
81
|
-
this.jobs.set(task.name, job)
|
|
82
|
-
}
|
|
83
|
-
}
|
package/tsconfig.json
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"extends": "../tsconfig.json",
|
|
3
|
-
"compilerOptions": {
|
|
4
|
-
"rootDir": "./src",
|
|
5
|
-
"module": "Node16",
|
|
6
|
-
"outDir": "dist",
|
|
7
|
-
"target": "esnext",
|
|
8
|
-
"declaration": true,
|
|
9
|
-
"resolveJsonModule": true
|
|
10
|
-
},
|
|
11
|
-
"include": ["bin/**/*.ts", "src/**/*.ts"],
|
|
12
|
-
"exclude": ["**/*.test.ts", "node_modules", "bin/dist"],
|
|
13
|
-
"references": [
|
|
14
|
-
{
|
|
15
|
-
"path": "../core/tsconfig.json"
|
|
16
|
-
}
|
|
17
|
-
]
|
|
18
|
-
}
|
package/tsconfig.tsbuildinfo
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"root":["./src/index.ts","./src/pikku-task-scheduler.ts"],"version":"5.7.3"}
|