https://github.com/nasriyasoftware/nasriyacron
Easily generate cron-expressions, schedule periodic cron jobs as well as time specific tasks.
https://github.com/nasriyasoftware/nasriyacron
cron cron-expression cronjob cronjob-scheduler typescipt
Last synced: 3 months ago
JSON representation
Easily generate cron-expressions, schedule periodic cron jobs as well as time specific tasks.
- Host: GitHub
- URL: https://github.com/nasriyasoftware/nasriyacron
- Owner: nasriyasoftware
- License: other
- Created: 2024-02-19T07:15:19.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-08-17T18:36:05.000Z (about 1 year ago)
- Last Synced: 2025-04-14T12:07:50.537Z (6 months ago)
- Topics: cron, cron-expression, cronjob, cronjob-scheduler, typescipt
- Language: TypeScript
- Homepage: https://nasriya.net
- Size: 193 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Security: SECURITY.md
Awesome Lists containing this project
README
[](https://nasriya.net)
# NasriyaCron.
[](https://github.com/nasriyasoftware/NasriyaCron?tab=License-1-ov-file)    [](link-to-your-status-page)##### Visit us at [www.nasriya.net](https://nasriya.net).
Made with ❤️ in **Palestine** 🇵🇸
___
#### Overview
Easily generate cron-expressions, schedule periodic cron jobs as well as time specific tasks.> [!IMPORTANT]
>
> 🌟 **Support Our Open-Source Development!** 🌟
> We need your support to keep our projects going! If you find our work valuable, please consider contributing. Your support helps us continue to develop and maintain these tools.
>
> **[Click here to support us!](https://fund.nasriya.net/)**
>
> Every contribution, big or small, makes a difference. Thank you for your generosity and support!
___
### Installation
```shell
npm i @nasriya/cron
```### Importing
Import in **ES6** module
```ts
import cron from '@nasriya/cron';
```Import in **CommonJS (CJS)**
```js
const cron = require('@nasriya/cron').default;
```
___## Usage
###### Generate Time Expressions
Use the `time` module on the cron manager to easily generate cron-expressions.```ts
// Runs every 5 minutes
const expression1: string = cron.time.every(5).minutes();// Runs every Monday and Tuesday
const expression2: string = cron.time.onSpecificDays(['Tue', 2]);
```###### Schedule a Periodic Task
To schedule tasks using a cron-expression, use the `schedule` method:```ts
const task: ScheduledTask = cron.schedule('* * * * *', () => {
console.log('A cron-job is running...');
}, {
name: 'test_task', // (Optional) The name of the task
timezone: 'Asia/Jerusalem', // (Optional) The timezone the task will run at
runOnInit: false // (Optional) Set to "true" to run immediately
})
```The `schedule` method returns a `ScheduledTask` type:
```ts
interface ScheduledTask {
name: string; // The name of the task
start: () => void; // Start/resume the task
stop: () => void; // Pause the task
destroy: () => Promise; // Destroy the task
}
```###### Schedule a One-Time Task
To schedule one-time tasks use the `scheduleTime` method. The method takes two arguments:
1. `time`: A timestamp `number`, an [ISO date](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString), or a `Date` instance.
2. `task`: a `function`.
```ts
// Schedule a task to run after 10 minutes from now:
const tenMins = 10 * 60 * 1000;
const task: ScheduledTimedTask = cron.scheduleTime(Date.now() + tenMins, () => {
console.log('Ten minutes has elapsed since the task was first scheduled')
})
```The `scheduleTime` method returns a `ScheduledTimedTask` type:
```ts
interface ScheduledTimedTask {
name: string; // The name of the task
cancel: () => void; // Cancel the task
invoke: () => void; // Invoke the task
destroy: () => Promise; // Destroy the task
}
```
___
## License
This software is licensed under the **Nasriya Open License (NOL)**, version 1.0.
Please read the license from [here](https://github.com/nasriyasoftware/NasriyaCron?tab=License-1-ov-file).