Webasyst supports creation of special scripts that can be executed by a job scheduler such as cron. This opportunity is available for apps and plugins.
In the scripts executed by a job scheduler, all the app or plugin classes can be used just like in an ordinary controller.
Creation of a script
For each action which must be executed by a scheduler create a separate file:
- For apps
wa-apps/[app_id]/lib/cli/[app_id][Action_name].cli.php
Example:
wa-apps/myapp/lib/cli/myappDo.cli.php
- For plugins
wa-apps/[app_id]/plugins/[plugin_id]/lib/cli/[app_id][Plugin_id]Plugin[Action_name].cli.php
Example:
wa-apps/someapp/plugins/my/lib/cli/someappMyPluginDo.cli.php
Here action_name is an arbitrary script identifier, which should possibly tell a user the purpose of the script.
In that file, you have to declare a class extending waCliController. The main logic to be executed by a job scheduler must be written within the execute() method.
The class name must be built by the following rule:
- For apps
[app_id][Action_name]Cli
- For plugins
[app_id][Plugin_id]Plugin[Action_name]Cli
Example
<?php
// for an app
class myappDoCli extends waCliController
{
public function execute()
{
// here goes the code that will be executed
// you can use models and other classes of an app
waLog::log("Hello world!");
}
}
// for a plugin
class someappMyPluginDoCli extends waCliController
{
public function execute()
{
// here goes the code that will be executed
// you can use models and other classes of an app or a plugin
waLog::log("Hello world!");
}
}
Script execution command
In the cron scheduler configuration, a user needs to add a command to ensure regular script execution:
- For apps
php [path to Webasyst directory]/cli.php [app_id] [action_name]
Example:php /var/www/wa/cli.php myapp do
- For plugins
php [path to Webasyst directory]/cli.php [app_id] [plugin_id]Plugin[Action_name]
Example:php /var/www/wa/cli.php someapp myPluginDo
During the development, you can verify the functionality of your script by running the above command in the server console.
Adding a script command to job scheduler setup
Example of a job scheduler command in the cron configuration:
*/10 * * * * /usr/bin/php /var/www/webasyst/cli.php myapp do
Read more about configuring cron jobs in the Cron section.









