Periodic tasks are programs that are run periodically.
They are executed by the bin/start --cron program,
which you should run from cron.
(To do this, run crontab and add a line of the form
0,5,10,15,20,25,30,35,40,45,50,55 * * * * HOME/projects/PROJECT/bin/start --cron
Periodic tasks are short-running, but in case they aren't,
the 'start' script detect when an instance is still running
and won't start another instance.
Your project's periodic tasks are described in its
config.xml file,
with elements of the following form:
";
echo html_text("
get_load
5 min
[ host.ip ]
[ 1 ]
[ 1 ]
echo \"HI\" | mail root@example.com
1 day
...
");
list_start();
list_item(
"cmd",
"The command used to perform the task.
This command will be run in the <bin_dir> directory."
);
list_item("host",
"Specifies where the daemon shoulr run.
The default is the project's main host,
as specified in config.xml."
);
list_item(
"period",
"The interval between executions,
expressed as a single number (in units of minutes)
or a number followed by 'seconds', 'minutes',
'hours', or 'days' (may be abbreviated to unique initial string)."
);
list_item(
"output",
"Specifies the output file to output;
and by default it is COMMAND_BASE_NAME.out.
Output files are in log_X/, where X is the host."
);
list_item(
"disabled",
"Ignore this entry"
);
list_item(
"always_run",
"Run this task regardless of whether or not the project is enabled
(for example, a script that logs the
current CPU load of the host machine)."
);
list_end();
echo "
A project newly created by make_project
has no periodic tasks.
Here are some programs you might want to run as periodic tasks:
";
list_start();
list_item("db_dump",
"Write statistics data to XML files for export.
Details are here.
Recommended period: 7 days."
);
list_item("update_profile_pages",
"Generate HTML files with lists of links to user profiles,
organized alphabetically and by country.
Recommended period: a few days."
);
list_item("update_stats -update_teams -update_users -update_hosts",
"Update the recent average credit fields of
users, teams, and hosts.
This is important if you use send personalized
mass emails or
reminder emails,
or use recent credit to enable message-board posting.
Recommended period: every few days."
);
list_item("update_uotd",
"Select a new User of the Day.
Period: 1 day."
);
list_item("../html/ops/update_forum_activities.php",
"Recompute 'popularity' estimages for threads and posts
in the Questions and Answers message boards.
Recommended period: 1 hour."
);
list_end();
page_tail();
?>