文件
csp/backend/include/csp/services/import_runner.h

45 行
955 B
C++

#pragma once
#include <cstdint>
#include <mutex>
#include <optional>
#include <string>
namespace csp::services {
struct ImportRunOptions {
std::string mode = "luogu";
bool clear_all_problems = false;
std::string local_pdf_dir;
int target_total = 5000;
int workers = 3;
};
class ImportRunner {
public:
static ImportRunner& Instance();
void Configure(std::string db_path);
bool TriggerAsync(const std::string& trigger, const ImportRunOptions& options);
void AutoStartIfEnabled();
bool IsRunning() const;
std::string LastCommand() const;
std::optional<int> LastExitCode() const;
int64_t LastStartedAt() const;
int64_t LastFinishedAt() const;
private:
ImportRunner() = default;
std::string db_path_;
mutable std::mutex mu_;
bool running_ = false;
std::string last_command_;
std::optional<int> last_exit_code_;
int64_t last_started_at_ = 0;
int64_t last_finished_at_ = 0;
};
} // namespace csp::services