# this POE session will start maintenance operations
-# ticked every 5 minutes
+# ticked every n minutes
POE::Session->create(
inline_states => {
_start => sub {
- # start the next tick
- $_[HEAP]->{next_alarm_time} = int(time()) + 60 * 5;
- $_[KERNEL]->alarm(tick => $_[HEAP]->{next_alarm_time});
+ # start the next ticks
+ $_[HEAP]->{next_alarm_time_1m} = int(time()) + 60;
+ $_[KERNEL]->alarm(tick_1m => $_[HEAP]->{next_alarm_time_1m});
+ $_[HEAP]->{next_alarm_time_5m} = int(time()) + 60 * 5;
+ $_[KERNEL]->alarm(tick_5m => $_[HEAP]->{next_alarm_time_5m});
},
+ # a tick every minute
+ tick_1m => sub {
+ # make sure the next tick is initialized
+ $_[HEAP]->{next_alarm_time_1m} = $_[HEAP]->{next_alarm_time_1m} + 60;
+ $_[KERNEL]->alarm(tick_1m => $_[HEAP]->{next_alarm_time_1m});
+
+ # call the real maintenance function
+ maintenance_1m();
+ },
# a tick every 5 minutes
- tick => sub {
+ tick_5m => sub {
# make sure the next tick is initialized
- $_[HEAP]->{next_alarm_time} = $_[HEAP]->{next_alarm_time} + 60 * 5;
- $_[KERNEL]->alarm(tick => $_[HEAP]->{next_alarm_time});
+ $_[HEAP]->{next_alarm_time_5m} = $_[HEAP]->{next_alarm_time_5m} + 60 * 5;
+ $_[KERNEL]->alarm(tick_5m => $_[HEAP]->{next_alarm_time_5m});
# call the real maintenance function
- maintenance();
+ maintenance_5m();
},
execute_shutdown => \&execute_shutdown,
},
}
-# maintenance()
+# maintenance_1m()
+#
+# do some maintenance
+#
+# parameter:
+# none
+# return:
+# none
+sub maintenance_1m {
+
+}
+
+
+# maintenance_5m()
#
# verify database connection, do some maintenance
#
# none
# return:
# none
-sub maintenance {
+sub maintenance_5m {
if (!$main::db->test_database()) {
print_msg("Database not connected!", ERROR);
}