77 lines
2.9 KiB
Markdown
77 lines
2.9 KiB
Markdown
# Migration
|
|
|
|
## 0.4, 0.5 ➡ 0.6
|
|
|
|
Architecturally 0.6 is much different from the previous versions. If you didn't implement your own scheduler, this version's only big change is the adding a reference of the scheduler when creating/removing notifications of a job.
|
|
|
|
### Removals
|
|
|
|
#### JobScheduler::new_with_scheduler()
|
|
The JobSchedulerWithoutSync trait has been removed. The new_with_scheduler method accordingly also. Replaced with new_with_storage_and_code().
|
|
|
|
#### JobStore
|
|
JobStore trait has been removed. Replaced by MetadataStore and NotificationStore traits.
|
|
|
|
#### JobSchedulerWithoutSync
|
|
No longer used.
|
|
|
|
#### SimpleJobScheduler
|
|
JobSchedulerWithoutSync trait deletion and default implementation SimpleJobScheduler removed.
|
|
|
|
#### SimpleJobStore
|
|
Removed as JobStore trait has been removed.
|
|
|
|
### API changes
|
|
#### Add &scheduler to notification add / removal
|
|
|
|
The first parameter to all of these functions on the JobLocked type needs to pass a reference to the scheduler as a first parameter.
|
|
|
|
Affected methods:
|
|
|
|
Affected | |
|
|
----------------------------------------- | -------------------------------------- |
|
|
JobLocked::on_notifications_add | |
|
|
JobLocked::on_start_notification_add | JobLocked::on_done_notification_add |
|
|
JobLocked::on_removed_notification_add | JobLocked::on_stop_notification_add |
|
|
JobLocked::on_notification_removal | |
|
|
JobLocked::on_start_notification_remove | JobLocked::on_done_notification_remove |
|
|
JobLocked::on_removed_notification_remove | JobLocked::on_stop_notification_remove |
|
|
|
|
|
|
|
|
### Additions
|
|
#### JobScheduler::new_with_storage_and_code()
|
|
Custom job metadata, job notification, job code and notification providers with the scheduler.
|
|
|
|
#### MetaDataStore
|
|
Trait needed by the scheduler to schedule jobs.
|
|
|
|
#### NotificationStore
|
|
Trait needed by the scheduler to run notifications on job start/scheduled/stop/removals.
|
|
|
|
#### ToCode
|
|
Generic trait that provides a PinnedGetFuture for a UUID.
|
|
|
|
#### JobCode
|
|
Trait that provides the runnable closures for the scheduler. Specific type of ToCode. Default implementation SimpleJobCode.
|
|
|
|
#### NotificationCode
|
|
Trait that provides the runnable notification closures for the scheduler. Specific type of ToCode. Default implementation SimpleNotificationCode.
|
|
|
|
#### SimpleMetadataStore
|
|
Default implementation for the MetadataStore.
|
|
|
|
#### SimpleNotificationStore
|
|
Default implementation for the NotificationStore.
|
|
|
|
#### PostgresMetadataStore
|
|
Postgres implementation of the MetadataStore. Needs postgres_storage feature.
|
|
|
|
#### PostgresNotificationStore
|
|
Postgres implementation of the NotificationStore. Needs postgres_storage feature.
|
|
|
|
#### NatsMetadataStore
|
|
Nats implementation of the MetadataStore. Needs nats_storage feature.
|
|
|
|
#### NatsNotificationStore
|
|
Nats implementation of the NotificationStore. Needs nats_storage feature. |