tokio-cron-scheduler 0.9.1

Schedule tasks on tokio using cron-like annotation, at an instant or repeat them at a fixed duration. Tasks can optionally be persisted using PostgreSQL or Nats.
Documentation
# NATS Persistent Storage

## Setup

### NATS
You'll need a running instance of NATS that is running with Jetstream. You'll be able to run one using Docker.

From https://docs.nats.io/running-a-nats-service/introduction/running/nats_docker/jetstream_docker :

```bash
docker run --rm -it -p 4222:4222 -p 6222:6222 -p 7222:7222 -p 8222:8222 nats -js -DV
```

### Connectivity options

#### Using environmental variables

The default struct constructor for both the Metadata storage and the Notification storage uses environmental variables to set up a NatsStore.


 Variable               | Default              | Description 
 ---------------------- | -------------------- |-------------
 NATS_HOST              | nats://localhost     | Nats Host to connect to
 NATS_APP               | Unknown Nats app     | User presented name of the app connecting
 NATS_USERNAME          |                      | User name to connect with. Both this and password needs to be set otherwise it is ignored.
 NATS_PASSWORD          |                      | Password to connect with. Both this and username needs to be set otherwise it is ignored.
NATS_BUCKET_NAME        | tokiocron            | Key/Value bucket to store values in
NATS_BUCKET_DESCRIPTION | Tokio Cron Scheduler | key/Value bucket description.


#### Provide own Jetstream instance
Both NatsMetadataStore and NatsNotificationStore encapsulates a NatsStore that in turn encapsulates a Jetstream instance usin . Provide it accordingly. See https://github.com/nats-io/nats.rs .