24#include <boost/uuid/uuid.hpp>
25#include "ores.database/domain/context.hpp"
26#include "ores.scheduler.api/domain/job_definition.hpp"
27#include "ores.scheduler.api/domain/job_instance.hpp"
28#include "ores.scheduler.core/repository/job_definition_repository.hpp"
29#include "ores.scheduler.core/repository/job_instance_repository.hpp"
31namespace ores::scheduler::service {
66 const std::string& change_reason_code,
67 const std::string& change_commentary);
75 void unschedule(
const boost::uuids::uuid& job_definition_id,
76 const std::string& modified_by,
77 const std::string& change_reason_code,
78 const std::string& change_commentary);
94 [[nodiscard]] std::vector<domain::job_instance>
96 std::size_t limit = 100);
Context for the operations on a postgres database.
Definition context.hpp:47
Persistent plan for an in-process scheduled job.
Definition job_definition.hpp:38
Reads and writes job definitions to data storage.
Definition job_definition_repository.hpp:37
Reads and writes job instance records to ores_scheduler_job_instances_tbl.
Definition job_instance_repository.hpp:38
Coordinator for OreStudio in-process job scheduling.
Definition cron_scheduler.hpp:48
domain::job_definition schedule(domain::job_definition def, const std::string &change_reason_code, const std::string &change_commentary)
Persist a job definition and mark it as active.
Definition cron_scheduler.cpp:45
std::vector< domain::job_definition > get_all_definitions()
All job definitions visible to the current tenant+party context.
Definition cron_scheduler.cpp:87
void unschedule(const boost::uuids::uuid &job_definition_id, const std::string &modified_by, const std::string &change_reason_code, const std::string &change_commentary)
Mark a job as inactive (paused).
Definition cron_scheduler.cpp:57
std::vector< domain::job_instance > get_job_history(const boost::uuids::uuid &job_definition_id, std::size_t limit=100)
Execution history for a specific job, newest-first.
Definition cron_scheduler.cpp:92