| /*------------------------------------------------------------------------- | |
| * | |
| * job_metadata.h | |
| * definition of job metadata functions | |
| * | |
| * Copyright (c) 2010-2015, Citus Data, Inc. | |
| * | |
| *------------------------------------------------------------------------- | |
| */ | |
| #ifndef JOB_METADATA_H | |
| #define JOB_METADATA_H | |
| #include "nodes/pg_list.h" | |
| #include "task/cron.h" | |
| typedef enum | |
| { | |
| CRON_STATUS_STARTING, | |
| CRON_STATUS_RUNNING, | |
| CRON_STATUS_SENDING, | |
| CRON_STATUS_CONNECTING, | |
| CRON_STATUS_SUCCEEDED, | |
| CRON_STATUS_FAILED | |
| } CronStatus; | |
| /* job metadata data structure */ | |
| typedef struct CronJob | |
| { | |
| int64 jobId; | |
| char *scheduleText; | |
| entry schedule; | |
| char *command; | |
| char *nodeName; | |
| int nodePort; | |
| char *database; | |
| char *userName; | |
| bool active; | |
| char *jobName; | |
| } CronJob; | |
| extern bool CronJobCacheValid; | |
| /* functions for retrieving job metadata */ | |
| extern void InitializeJobMetadataCache(void); | |
| extern void ResetJobMetadataCache(void); | |
| extern List * LoadCronJobList(void); | |
| extern CronJob * GetCronJob(int64 jobId); | |
| extern void InsertJobRunDetail(int64 runId, int64 *jobId, char *database, char *username, char *command, char *status); | |
| extern void UpdateJobRunDetail(int64 runId, int32 *job_pid, char *status, char *return_message, TimestampTz *start_time, | |
| TimestampTz *end_time); | |
| extern int64 NextRunId(void); | |
| extern void MarkPendingRunsAsFailed(void); | |
| extern char *GetCronStatus(CronStatus cronstatus); | |
| extern int64 ScheduleCronJob(text *scheduleText, text *commandText, | |
| text *databaseText, text *usernameText, | |
| bool active, text *jobnameText); | |
| extern Oid UnscheduleCronJob(const char *jobname, const char *username, Oid jobid, bool missing_ok); | |
| extern void AlterCronJob(int64 jobId, char *schedule, char *command, | |
| char *database_name, char *username, bool *active); | |
| #endif /* JOB_METADATA_H */ |