Skip to main content

An easy job scheduling interface for flask projects.

Project description

An easy job scheduling interface for flask projects.

Install

pip install flask_jobs

Example Flask Project

import datetime
import time

from flask import Flask, render_template, redirect
from flask_jobs import JobScheduler

app = Flask('JobApp')
jobs = JobScheduler(app)


def Callback(*a, **k):
    print('Callback(', a, k)


@app.route('/')
def Index():
    return render_template(
        'index.html',
        jobs=jobs.GetJobs(),
        utcnow=datetime.datetime.utcnow(),
    )


@app.route('/add_now_job')
def NowJob():
    # Schedule a job to happen ASAP
    jobs.AddJob(
        func=Callback,
        args=('Now Job now={}'.format(datetime.datetime.utcnow()),),
        kwargs={'one': 'won', 'two': 'too'},
        name='Now Job at {}'.format(time.asctime())
    )
    return redirect('/')


@app.route('/add_later_job')
def LaterJob():
    # Schedule a job to happen once in the future
    dt = datetime.datetime.utcnow() + datetime.timedelta(seconds=5)
    jobs.ScheduleJob(
        dt=dt,
        func=Callback,
        args=('ScheduleJob now={}, dt={}'.format(
            datetime.datetime.utcnow(),
            dt
        ),),
        kwargs={'one': 'won', 'two': 'too'},
        name='ScheduleJob Job at {}'.format(time.asctime())
    )
    return redirect('/')


@app.route('/add_repeat_job')
def Repeat():
    # Schedule a job to repeat at the given interval
    dt = datetime.datetime.utcnow()
    jobs.RepeatJob(
        startDT=dt, # The first time to run (None if you want to start right now)
        func=Callback,
        args=('RepeatJob now={}, dt={}'.format(
            datetime.datetime.utcnow(),
            dt
        ),),
        kwargs={'one': 'won', 'two': 'too'},
        name='RepeatJob Job at {}'.format(time.asctime()),
        seconds=10, # can also pass "weeks", "days", "minutes", "hours"
    )
    return redirect('/')


@app.route('/delete/<ID>')
def Delete(ID):
    job = jobs.GetJob(int(ID))
    job.Delete()
    return redirect('/')


if __name__ == '__main__':
    app.run(
        debug=True,
        threaded=True,
    )

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

flask_jobs-0.0.29.tar.gz (4.7 kB view details)

Uploaded Source

Built Distribution

flask_jobs-0.0.29-py3-none-any.whl (4.7 kB view details)

Uploaded Python 3

File details

Details for the file flask_jobs-0.0.29.tar.gz.

File metadata

  • Download URL: flask_jobs-0.0.29.tar.gz
  • Upload date:
  • Size: 4.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/46.4.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.2

File hashes

Hashes for flask_jobs-0.0.29.tar.gz
Algorithm Hash digest
SHA256 79e3cd5a82380eef9463d4877d1129f828f9ec493fba03a92e351879792001e3
MD5 a6b214fdcbd50b8f425e9efcb12e2256
BLAKE2b-256 b019be916aa814e363583ffbed57f2f4a42eed80296a08b696548035fb45a6f2

See more details on using hashes here.

File details

Details for the file flask_jobs-0.0.29-py3-none-any.whl.

File metadata

  • Download URL: flask_jobs-0.0.29-py3-none-any.whl
  • Upload date:
  • Size: 4.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/46.4.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.2

File hashes

Hashes for flask_jobs-0.0.29-py3-none-any.whl
Algorithm Hash digest
SHA256 ca09b8a74c8e9a2ab1478c9a8c550562d5e01effbc085b551c1291f888146066
MD5 6bfc49d14232cd836fcefe76d0bbdf60
BLAKE2b-256 0c8fc7184a566222efc5d9ad0d1d4f4fa758dffde8e7196421181e5cfaf50d84

See more details on using hashes here.

Supported by

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