42 lines
1.4 KiB
Protocol Buffer
42 lines
1.4 KiB
Protocol Buffer
|
|
syntax = "proto3";
|
||
|
|
|
||
|
|
package scheduler;
|
||
|
|
|
||
|
|
option go_package = "github.com/navidrome/navidrome/plugins/host/scheduler;scheduler";
|
||
|
|
|
||
|
|
// go:plugin type=host version=1
|
||
|
|
service SchedulerService {
|
||
|
|
// One-time event scheduling
|
||
|
|
rpc ScheduleOneTime(ScheduleOneTimeRequest) returns (ScheduleResponse);
|
||
|
|
|
||
|
|
// Recurring event scheduling
|
||
|
|
rpc ScheduleRecurring(ScheduleRecurringRequest) returns (ScheduleResponse);
|
||
|
|
|
||
|
|
// Cancel any scheduled job
|
||
|
|
rpc CancelSchedule(CancelRequest) returns (CancelResponse);
|
||
|
|
}
|
||
|
|
|
||
|
|
message ScheduleOneTimeRequest {
|
||
|
|
int32 delay_seconds = 1; // Delay in seconds
|
||
|
|
bytes payload = 2; // Serialized data to pass to the callback
|
||
|
|
string schedule_id = 3; // Optional custom ID (if not provided, one will be generated)
|
||
|
|
}
|
||
|
|
|
||
|
|
message ScheduleRecurringRequest {
|
||
|
|
string cron_expression = 1; // Cron expression (e.g. "0 0 * * *" for daily at midnight)
|
||
|
|
bytes payload = 2; // Serialized data to pass to the callback
|
||
|
|
string schedule_id = 3; // Optional custom ID (if not provided, one will be generated)
|
||
|
|
}
|
||
|
|
|
||
|
|
message ScheduleResponse {
|
||
|
|
string schedule_id = 1; // ID to reference this scheduled job
|
||
|
|
}
|
||
|
|
|
||
|
|
message CancelRequest {
|
||
|
|
string schedule_id = 1; // ID of the schedule to cancel
|
||
|
|
}
|
||
|
|
|
||
|
|
message CancelResponse {
|
||
|
|
bool success = 1; // Whether cancellation was successful
|
||
|
|
string error = 2; // Error message if cancellation failed
|
||
|
|
}
|