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