Skip to main content

A Command line tool for the dicom processor library

Project description

dcm-processor-job-scheduler

dcm-processor-job-scheduler is the orchestration layer for the dcm-processor platform.

It decides when processing jobs should be created and in what order they should run.

Role In The Bigger Picture

This module sits between ingestion and execution.

Its place in the full flow is:

  1. DICOM data is received and stored
  2. the scheduler detects stable processing candidates
  3. it evaluates service job definitions and registry callbacks
  4. it creates queued jobs with dependencies
  5. workers then execute those jobs

So this package is the coordination engine of the platform.

Main Responsibilities

1. Detect Work To Be Scheduled

The scheduler looks for completed or stable patient data in the database and decides when to begin the processing workflow.

2. Interpret Service Job Definitions

Service packages define jobs in dcm-processor.json.

The scheduler interprets fields such as:

  • jobName
  • workerEntry
  • registryEntry
  • events
  • dependsOn
  • sortPosition

That job metadata becomes the execution plan.

3. Run Registry Callbacks

Before creating a queued job, the scheduler can load the service registry module and run its callback to determine whether a job should be scheduled and which parameters should be added.

4. Build Dependency Chains

The scheduler creates:

  • pre-service jobs
  • event-driven service jobs
  • post-service jobs

It also resolves declared dependencies between jobs so workers process them in a valid order.

5. Emit Worker Queue Jobs

The final output of this module is queued work written through dcm-processor-db-provider.

Those queued jobs are then consumed by the worker runtime.

Key Internal Areas

  • dcm_processor_job_scheduler/job_scheduler.py
    • main scheduling logic
  • dcm_processor_job_scheduler/__init__.py
    • exports JobScheduler

Dependencies On Other Modules

This module depends mainly on:

  • dcm-processor-db-provider
    • for reading services, workers, sessions, and creating queued jobs
  • dcm-processor-utils
    • for shared settings and helpers

It collaborates directly with:

  • dcm-processor-worker
    • by creating jobs whose functions are executed by worker consumers

What This Module Is Not

This package is not:

  • the DICOM listener
  • the worker execution engine
  • the end-user CLI

It is responsible for deciding what should run and when.

Summary

Use this module when you need job orchestration for the dcm-processor platform.

It is the bridge between stored medical data and executable processing jobs.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dcm_processor_job_scheduler-0.0.1.tar.gz (6.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dcm_processor_job_scheduler-0.0.1-py3-none-any.whl (7.0 kB view details)

Uploaded Python 3

File details

Details for the file dcm_processor_job_scheduler-0.0.1.tar.gz.

File metadata

File hashes

Hashes for dcm_processor_job_scheduler-0.0.1.tar.gz
Algorithm Hash digest
SHA256 790b1d2bd10530a344ffc69aa833c23108aeb839c9e6e698d99ae51d21669bcb
MD5 cba4df34d5c6eaf425683bb9aef42329
BLAKE2b-256 2a7df7675abdc3d0c7e091d8c7c2fe691a09ba435169feab9960863ceea9470f

See more details on using hashes here.

File details

Details for the file dcm_processor_job_scheduler-0.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for dcm_processor_job_scheduler-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 8203816ad49cd264abbf1425b9d5663ed7a4ff04134e0222fed8e3d6fa97c3ad
MD5 5a6cd514707f6ab6cc8dd5583115319d
BLAKE2b-256 ac22205bf5495f8054efca6b8854d079a3228d568d95df029f0db888c59e5042

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page