public function process_action($action_id)
 {
     try {
         do_action('action_scheduler_before_execute', $action_id);
         $action = $this->store->fetch_action($action_id);
         $this->store->log_execution($action_id);
         $action->execute();
         do_action('action_scheduler_after_execute', $action_id);
         $this->store->mark_complete($action_id);
     } catch (Exception $e) {
         $this->store->mark_failure($action_id);
         do_action('action_scheduler_failed_execution', $action_id, $e);
     }
     $this->schedule_next_instance($action);
 }