2 |
3 | Nuxt module playground!
4 |
5 |
6 |
7 |
9 |
--------------------------------------------------------------------------------
/playground/nuxt.config.ts:
--------------------------------------------------------------------------------
1 | export default defineNuxtConfig({
2 | modules: ['../src/module'],
3 | myModule: {}
4 | })
5 |
--------------------------------------------------------------------------------
/playground/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "private": true,
3 | "name": "nuxt-scheduler-playground"
4 | }
5 |
--------------------------------------------------------------------------------
/playground/server/app/services/say.ts:
--------------------------------------------------------------------------------
1 | export default function say(message: string) {
2 | console.log(message);
3 | }
4 |
--------------------------------------------------------------------------------
/playground/server/plugins/rocketScheduler.server.ts:
--------------------------------------------------------------------------------
1 | import { useScheduler } from "#scheduler"
2 | import say from "~~/server/app/services/say";
3 |
4 |
5 | export default defineNitroPlugin(() => {
6 | startScheduler()
7 | })
8 |
9 | function startScheduler() {
10 | const scheduler = useScheduler();
11 |
12 | scheduler.run(() => {
13 | say("I run every 3 seconds, 🚀🚀🚀");
14 | }).everySeconds(3);
15 |
16 | scheduler.run(() => {
17 | say("I run every 5 seconds, 🚀🚀🚀🚀🚀");
18 | }).everySeconds(5);
19 |
20 | // create as many tasks as you want here
21 | }
22 |
--------------------------------------------------------------------------------
/playground/server/plugins/smile.server.ts:
--------------------------------------------------------------------------------
1 | import { useScheduler } from "#scheduler"
2 | import say from "~~/server/app/services/say";
3 |
4 | export default defineNitroPlugin(() => {
5 | startScheduler()
6 | })
7 |
8 | function startScheduler() {
9 | const scheduler = useScheduler();
10 |
11 | scheduler.run(() => {
12 | say("cool beans! I run once a second! 😀");
13 | }).everySecond();
14 |
15 | scheduler.run(() => {
16 | say("Running a job at 01:00 PM at America/Sao_Paulo timezone 😀");
17 | }).cron('0 13 * * *', 'America/Sao_Paulo');
18 |
19 | // create as many tasks as you want here
20 | }
21 |
--------------------------------------------------------------------------------
/src/module.ts:
--------------------------------------------------------------------------------
1 | import { defineNuxtModule, createResolver, addTemplate, useLogger } from '@nuxt/kit'
2 | import defu from 'defu'
3 |
4 | export interface ModuleOptions { }
5 |
6 | export default defineNuxtModule