...

The group of mechanisms for intercepting the change of state of pieces (injection-style) is associated with the lack of the need to perform additional operations, which will greatly affect performance.
A group of scheduled checkers mechanisms seems to be the most appropriate, as it has less impact on performance.

Creating Namely, creating cron-jobs can be effective, but it is difficult to implement and maintain, since it is necessary to install an extension on each database.
Vert.X Periodic Timer seems to be the most efficient and easily implemented way, taking into account, however, the need to implement a way to coordinate instances to prevent unnecessary work in the case of a cluster.
Separate Scheduler Application can be an efficient way without the lack of lack of consistency in cluster mode (mentioned for Vert.X Periodic Timer) but it should technically be implemented probably as a separate module.

So, as a result I can propose solution based on Vert.X Periodic Timer as first approach.