How to unblock task in vTaskDelayUntil?

Hello ,
I need a task to run, for example, once a second. I think you could use the function vTaskDelayUntil.
However, I also need the task to run out of order, for example by sending a message.

How can I make a task in vTaskDelayUntil start when I receive a message or does it generally wake up out of order?

Normally, a better way to do this is to wait on the queue for the message with a timeout, perhaps computing the value of the timeout based on the current tick value. The look at the return code of the queue read to see if you got something or timed out.

A second option would be to use vTaskAbortDelay() to end the delay.