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