Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/yujiosaka/elysiacronyx
A plugin to harness the power of Cronyx's script-based task scheduling in your Elysia applications.
https://github.com/yujiosaka/elysiacronyx
bun cron cronjob crontab elysia job-scheduler mongodb mysql plugin postgres redis scheduler task-scheduler
Last synced: about 1 month ago
JSON representation
A plugin to harness the power of Cronyx's script-based task scheduling in your Elysia applications.
- Host: GitHub
- URL: https://github.com/yujiosaka/elysiacronyx
- Owner: yujiosaka
- License: mit
- Created: 2023-10-28T09:25:39.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2023-11-04T11:31:39.000Z (about 1 year ago)
- Last Synced: 2024-11-21T20:06:02.519Z (about 1 month ago)
- Topics: bun, cron, cronjob, crontab, elysia, job-scheduler, mongodb, mysql, plugin, postgres, redis, scheduler, task-scheduler
- Language: TypeScript
- Homepage:
- Size: 502 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: docs/CONTRIBUTING.md
- Funding: docs/FUNDING.yml
- License: LICENSE
- Code of conduct: docs/CODE_OF_CONDUCT.md
- Security: docs/SECURITY.md
Awesome Lists containing this project
README
# ElysiaCronyx [![npm version](https://badge.fury.io/js/elysia-cronyx.svg)](https://badge.fury.io/js/elysia-cronyx) [![CI/CD](https://github.com/yujiosaka/ElysiaCronyx/actions/workflows/ci_cd.yml/badge.svg)](https://github.com/yujiosaka/ElysiaCronyx/actions/workflows/ci_cd.yml)
###### [Code of Conduct](https://github.com/yujiosaka/CronyxServer/blob/main/docs/CODE_OF_CONDUCT.md) | [Contributing](https://github.com/yujiosaka/CronyxServer/blob/main/docs/CONTRIBUTING.md) | [Changelog](https://github.com/yujiosaka/CronyxServer/blob/main/docs/CHANGELOG.md)
A plugin to harness the power of [Cronyx](https://github.com/yujiosaka/Cronyx)'s script-based task scheduling in your [Elysia](https://elysiajs.com/) applications.
## 🌟 Features
Integrate Cronyx directly with Elysia applications and enable a world of seamless task scheduling.
## 🚀 Getting Started
### Installation
Install the Cronyx and ElysiaCronyx plugin using `bun`:
```sh
$ bun add cronyx elysia-cronyx
```### Integration with Elysia
For integration with the Elysia web framework:
```ts
// MysqlJobStore, PostgresJobStore and RedisJobStore are also available for the integration
import { MongodbJobStore } from "cronyx";
import cronyx from "cronyx-server";
import Elysia from "elysia";const jobStore = await MongodbJobStore.connect("mongodb://mongo:27017/db");
const app = new Elysia().use(cronyx({ jobStore })).listen(3000);
console.log(`CronyxServer is running at ${app.server?.hostname}:${app.server?.port}`);
```## ⚙️ Configuration
- `jobStore`: [BaseJobStore] - Cronyx's job store instance.
- `timezone?` (**optional**): [string] - Defaults to local timezone if not provided.## 💻 Development
Using Visual Studio Code and the [Dev Containers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers) extension, you can simplify the development environment setup process. The extension allows you to develop inside a Docker container and automatically sets up the development environment for you.
1. Install the [Dev Containers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers) extension in Visual Studio Code.
2. Clone the repository:
```sh
git clone https://github.com/yujiosaka/ElysiaCronyx.git
```3. Open the cloned repository in Visual Studio Code.
4. When prompted by Visual Studio Code, click "Reopen in Container" to open the project inside the Docker container.
5. The extension will build the Docker container and set up the development environment for you. This may take a few minutes.
6. Build and run the Docker container with Docker Compose:
```sh
$ docker-compose up --build
```This will start testing in watch mode.
## 🐞 Debugging tips
### Enable debug logging
Job status changes are logged via the [debug](https://github.com/visionmedia/debug) module under the `cronyx:elysia` namespace.
```sh
env DEBUG="cronyx:elysia" bun server.js
```## 💳 License
This project is licensed under the MIT License. See [LICENSE](https://github.com/yujiosaka/Cronyx/blob/main/LICENSE) for details.
[BaseJobStore]: https://github.com/yujiosaka/Cronyx/blob/main/docs/API.md#job-stores "BaseJobStore"
[string]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type "String"