As per the Javadoc for the @Schedule annotation, the default values are:
*for all fields except hour, minute, and second; and0for hour, minute, and second, by default.
By specifying minute="*" and leaving hour at its default of 0, it requests that the timer run every minute after midnight for one hour (i.e., 00:00, 00:01, 00:02, …, 00:59) and then not again until the next day. Instead, use:
@Schedule(hour="*", minute="*")
To run every few seconds (e.g., 10 seconds), you can use a cron-like syntax:
@Schedule(hour = "*", minute = "*", second = "*/10", persistent = false)
By default, the scheduler persists events. Setting persistent = false will prevent them from building up over time, if so desired.