I totally missed it. It has to be exactly called in emit_refresh. After latest commit, behaviour of my code is this:-
17:00 -> set the emit_refresh to be called at 00:00
00:00 -> refresh is emited
00:00 -> day_start is called(periodically call every 24 hrs )