Skip to content

Integrations

Jobify is built with a focus on extensibility, making it easy to integrate with your favorite frameworks, dependency injection systems, and database backends.

  • Dependency Injection


    Seamlessly connect with frameworks like Dishka for robust, typed DI in your tasks.

  • Expanded Storage


    Use community-supported drivers to persist jobs in Redis, PostgreSQL, and more.

  • ASGI Native


    First-class support for FastAPI, Starlette, and other ASGI lifespans.

  • Custom Extensions


    Easily build your own plugins or middleware to extend core functionality.

Dishka

dishka-jobify connects Jobify with Dishka, a modern Python dependency injection framework. It allows you to inject providers directly into your task functions using the standard INJECT pattern.

jobify-db

jobify-db expands Jobify's persistence layer with additional database backends. This is the recommended package if you need to move beyond the default SQLite storage.

FastAPI & ASGI Frameworks

Frameworks that support the ASGI lifespan protocol (like FastAPI or Starlette) don't require a dedicated integration package. You can manage the Jobify lifecycle directly within your app's lifespan handler.

Use the async with context manager to automatically handle startup and shutdown.

from collections.abc import AsyncIterator
from contextlib import asynccontextmanager
from fastapi import FastAPI
from jobify import Jobify

jobify_app = Jobify()

@asynccontextmanager
async def lifespan(_app: FastAPI) -> AsyncIterator[None]:
    async with jobify_app:
        yield

app = FastAPI(lifespan=lifespan)

If you need more granular control, you can call the lifecycle methods explicitly.

from fastapi import FastAPI
from jobify import Jobify

jobify_app = Jobify()

@asynccontextmanager
async def lifespan(_app: FastAPI) -> AsyncIterator[None]:
    await jobify_app.startup()
    yield
    await jobify_app.shutdown()

app = FastAPI(lifespan=lifespan)

Looking for more?

If you've built an integration for Jobify, feel free to open a PR to add it to this list!