forked from vieter-v/libvieter
feat(job-queue): first draft of job struct
parent
f376aedaee
commit
53eb5c1784
|
@ -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
|
Loading…
Reference in New Issue