mirror of https://github.com/BOINC/boinc.git
130 lines
3.8 KiB
PHP
130 lines
3.8 KiB
PHP
<?php
|
|
|
|
require_once("docutil.php");
|
|
page_head("Periodic tasks");
|
|
echo "
|
|
<b>Periodic tasks</b> are programs that are run periodically.
|
|
They are executed by the <a href=tool_start.php>bin/start --cron</a> program,
|
|
which you should run from cron.
|
|
(To do this, run crontab and add a line of the form
|
|
<pre>
|
|
0,5,10,15,20,25,30,35,40,45,50,55 * * * * HOME/projects/PROJECT/bin/start --cron
|
|
</pre>
|
|
|
|
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.
|
|
|
|
<p>
|
|
Your project's periodic tasks are described in its
|
|
<a href=configuration.php>config.xml</a> file,
|
|
with elements of the following form:
|
|
";
|
|
|
|
echo html_text("
|
|
<task>
|
|
<cmd> get_load </cmd>
|
|
<output> get_load.out </output>
|
|
<period> 5 min </period>
|
|
[ <host> host.ip </host> ]
|
|
[ <disabled> 1 </disabled> ]
|
|
[ <always_run> 1 </always_run> ]
|
|
</task>
|
|
<task>
|
|
<cmd> echo \"HI\" | mail root@example.com </cmd>
|
|
<output> /dev/null </output>
|
|
<period> 1 day </period>
|
|
</task>
|
|
<task>
|
|
...
|
|
</task>
|
|
");
|
|
list_start();
|
|
list_item(
|
|
"cmd",
|
|
"The command used to perform the task.
|
|
Must be a program in the project's /bin directory.
|
|
<p>
|
|
You can run PHP scripts as periodic tasks.
|
|
These scripts must be in the html/ops/ directory,
|
|
and can be run with a command of the form
|
|
<pre>run_in_ops scriptname</pre>
|
|
The script should be executable, and should have the form
|
|
<pre>
|
|
#! /usr/bin/env php
|
|
<?php
|
|
...
|
|
?>
|
|
You must specify the output file for such tasks
|
|
(otherwise it will go to run_in_ops.out).
|
|
"
|
|
);
|
|
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 <a href=make_project.php>make_project</a>
|
|
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 <a href=db_dump.php>here</a>.
|
|
Recommended period: 1 day."
|
|
);
|
|
list_item("update_profile_pages.php",
|
|
"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
|
|
<a href=recruit.php>mass emails</a> or
|
|
<a href=reminder_email.php>reminder emails</a>,
|
|
or use recent credit to enable message-board posting.
|
|
Recommended period: every few days."
|
|
);
|
|
list_item("update_uotd.php",
|
|
"Select a new User of the Day.
|
|
Period: 1 day."
|
|
);
|
|
list_item("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();
|
|
?>
|