pypyr-scheduler-server¶
This is the main part where all the work is done.
Prerequisites¶
APScheduler needs a database (the job store) to store information about the state of the scheduled Jobs. The default with pypyr-scheduler is in memory which is not very useful, because all jobs will be gone if the server process is stopped. Among all possible options APScheduler has (see its docs), sqlite is absolutely sufficient until you are running thousands of jobs.
Installation¶
The recommended way is to use pipenv:
pipenv install pypyr-scheduler-server
The RPC client and the command line interface can be installed seperately:
pipenv install pypyr-scheduler-rpc-client
pipenv install pypyr-scheduler-cli
Alternatively, you can also use pip
to install the package.
Configuration¶
There is one configuration file which controls the scheduler, pypyr and logging.
The name of the file has to be scheduler_config.py
, its directory is passed via the
command line switch -c
or --conf
. An example configuration file containing
the default config is packaged in the source and the wheel distribution. Alternatively
you can refer the file from github.
In the configuration file, there are there python dictionaries defined, one for each of the sections above.
apscheduler
is a apschedulers configuration and is passed as-is to it
at server startup. See apscheduler’s documentation
for details. “Method 2” is used.
pypyr
controls pypyr and other aspects of the sheduler:
pypyr = {
'pipelines.base_path': 'pipelines',
'pipelines.log_path': 'logs',
'pipelines.log_level': logging.INFO,
'server_port': 12345,
}
Note that there is only a port configuration, no host. The server will always
listen on localhost
for security reasons. If you want to connect from outside,
you’ll have to tunnel a connection.
Running the server¶
Run the server with (starting at the same
pipenv run python -m pyrsched.server -c <config directory>
This repository also contains a systemd script (see the scripts
directory)
which could be used to run the server automatically at system start. You’ll
have to adjust some paths there.