Some checks failed
Pipeline: Test, Lint, Build / Get version info (push) Has been cancelled
Pipeline: Test, Lint, Build / Lint Go code (push) Has been cancelled
Pipeline: Test, Lint, Build / Test Go code (push) Has been cancelled
Pipeline: Test, Lint, Build / Test JS code (push) Has been cancelled
Pipeline: Test, Lint, Build / Lint i18n files (push) Has been cancelled
Pipeline: Test, Lint, Build / Check Docker configuration (push) Has been cancelled
Pipeline: Test, Lint, Build / Build (darwin/amd64) (push) Has been cancelled
Pipeline: Test, Lint, Build / Build (darwin/arm64) (push) Has been cancelled
Pipeline: Test, Lint, Build / Build (linux/386) (push) Has been cancelled
Pipeline: Test, Lint, Build / Build (linux/amd64) (push) Has been cancelled
Pipeline: Test, Lint, Build / Build (linux/arm/v5) (push) Has been cancelled
Pipeline: Test, Lint, Build / Build (linux/arm/v6) (push) Has been cancelled
Pipeline: Test, Lint, Build / Build (linux/arm/v7) (push) Has been cancelled
Pipeline: Test, Lint, Build / Build (linux/arm64) (push) Has been cancelled
Pipeline: Test, Lint, Build / Build (windows/386) (push) Has been cancelled
Pipeline: Test, Lint, Build / Build (windows/amd64) (push) Has been cancelled
Pipeline: Test, Lint, Build / Push to GHCR (push) Has been cancelled
Pipeline: Test, Lint, Build / Push to Docker Hub (push) Has been cancelled
Pipeline: Test, Lint, Build / Cleanup digest artifacts (push) Has been cancelled
Pipeline: Test, Lint, Build / Build Windows installers (push) Has been cancelled
Pipeline: Test, Lint, Build / Package/Release (push) Has been cancelled
Pipeline: Test, Lint, Build / Upload Linux PKG (push) Has been cancelled
Close stale issues and PRs / stale (push) Has been cancelled
POEditor import / update-translations (push) Has been cancelled
55 lines
1.9 KiB
Protocol Buffer
55 lines
1.9 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);
|
|
|
|
// Get current time in multiple formats
|
|
rpc TimeNow(TimeNowRequest) returns (TimeNowResponse);
|
|
}
|
|
|
|
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
|
|
}
|
|
|
|
message TimeNowRequest {
|
|
// Empty request - no parameters needed
|
|
}
|
|
|
|
message TimeNowResponse {
|
|
string rfc3339_nano = 1; // Current time in RFC3339Nano format
|
|
int64 unix_milli = 2; // Current time as Unix milliseconds timestamp
|
|
string local_time_zone = 3; // Local timezone name (e.g., "America/New_York", "UTC")
|
|
} |