feat(job-queue): first draft of job struct

job-queue
Jef Roosens 2023-02-02 10:10:03 +01:00
parent f376aedaee
commit 53eb5c1784
Signed by: Jef Roosens
GPG Key ID: B75D4F293C7052DB
1 changed files with 32 additions and 0 deletions

View File

@ -0,0 +1,32 @@
#ifndef VIETER_JOB_QUEUE
#define VIETER_JOB_QUEUE
#include <stdint.h>
#include <stdbool.h>
#include "vieter_cron.h"
/*
* The order of these do not imply that they happen in this order. New states
* will just get added as consecutive numbers. Their values should be
* monotonically increasing values, as these will be used to index arrays, among
* other things.
*/
typedef enum vieter_job_state {
vieter_job_queued = 0,
vieter_job_dispatched = 1,
vieter_job_finished = 2
} vieter_job_state;
// This macro should be kept in sync with the above enum
#define VIETER_JOB_STATES 3
typedef struct vieter_job {
int id;
uint64_t next_scheduled_time;
vieter_cron_expression *ce;
bool single;
vieter_job_state state;
uint64_t state_transition_times[VIETER_JOB_STATES];
} vieter_job;
#endif