Operators#

These docs are intended for users who want to configure and deploy Jupyter Scheduler.

For installation and usage instructions, please refer to our user’s guide.

Server configuration#

You can configure the server extension to replace the Scheduler server API, replace the execution engine, re-create the database tables, and select a database path.

drop_tables#

Setting this value to True will re-create the database tables on each JupyterLab start. This will destroy all existing data. It may be necessary if your database’s schema is out of date.

jupyter lab --SchedulerApp.drop_tables=True

db_url#

The fully qualified URL of the database. For example, a SQLite database path will look like sqlite:///<database-file-path>.

jupyter lab --SchedulerApp.db_url=sqlite:///<database-file-path>

scheduler_class#

The fully qualified classname to use for the scheduler API. This class should extend jupyter_scheduler.scheduler.BaseScheduler and implement all abstract methods. The default class is jupyter_scheduler.scheduler.Scheduler.

jupyter lab --SchedulerApp.scheduler_class=jupyter_scheduler.scheduler.Scheduler

For more information on how to write a custom implementation, please to our developer’s guide.

environment_manager_class#

The fully qualified classname to use for the environment manager. This class should extend jupyter_scheduler.environments.EnvironmentManager and implement all abstract methods. The default class is jupyter_scheduler.environments.CondaEnvironmentManager.

jupyter lab --SchedulerApp.environment_manager_class=jupyter_scheduler.environments.CondaEnvironmentManager

For more information on writing a custom implementation, please see the developer’s guide.

execution_manager_class#

The fully qualified classname to use for the execution manager, the module that is responsible for reading the input file, executing and writing the output. This option lets you specify a custom execution engine without replacing the whole scheduler API. This class should extend jupyter_scheduler.executors.ExecutionManager and implement the execute method. The default class is jupyter_scheduler.executors.DefaultExecutionManager.

# This can be configured on the BaseScheduler class
jupyter lab --BaseScheduler.execution_manager_class=jupyter_scheduler.executors.DefaultExecutionManager

# Or, on the Scheduler class directly
jupyter lab --Scheduler.execution_manager_class=jupyter_scheduler.executors.DefaultExecutionManager

For more information on writing a custom implementation, please see the developer’s guide.

job_files_manager_class#

The fully qualified classname to use for the job files manager. This class should extend jupyter_scheduler.job_files_manager.JobFilesManager and implement all abstract methods. The default class is jupyter_scheduler.job_files_manager.JobFilesManager.

jupyter lab --SchedulerApp.job_files_manager_class=jupyter_scheduler.job_files_manager.JobFilesManager

For more information on writing a custom implementation, please see the developer’s guide.

Example: Capturing side effect files#

The default scheduler and execution manager classes do not capture side effect files, files that are created as a side effect of executing cells in a notebook. The ArchivingScheduler and ArchivingExecutionManager classes do capture side effect files. If you intend to run notebooks that produce side effect files, you can use these classes by running:

jupyter lab \
  --SchedulerApp.scheduler_class=jupyter_scheduler.scheduler.ArchivingScheduler \
  --Scheduler.execution_manager_class=jupyter_scheduler.executors.ArchivingExecutionManager

UI configuration#

You can configure the Jupyter Scheduler UI by installing a lab extension that both:

  1. Exports a plugin providing the Scheduler.IAdvancedOptions token.

  2. Disables the @jupyterlab/scheduler:IAdvancedOptions plugin.

This allows you to customize the “advanced options” shown in the “Create Job” form and the “Job Details” view (and the same form/view for job definitions).

For more information about writing a custom plugin, please see the developer’s guide.